home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / console-setup.config < prev    next >
Text File  |  2009-10-02  |  82KB  |  3,206 lines

  1. #!/bin/bash
  2.  
  3. #     Copyright ┬⌐ 2005 Anton Zinoviev <anton@lml.bas.bg>
  4.  
  5. #     This program is free software; you can redistribute it and/or modify
  6. #     it under the terms of the GNU General Public License as published by
  7. #     the Free Software Foundation; either version 2 of the License, or
  8. #     (at your option) any later version.
  9.  
  10. #     This program is distributed in the hope that it will be useful,
  11. #     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. #     GNU General Public License for more details.
  14.  
  15. #     If you have not received a copy of the GNU General Public License
  16. #     along with this program, write to the Free Software Foundation, Inc.,
  17. #     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19. #                        ----------
  20. #                         CONTENTS
  21. #                        ----------
  22. #
  23. # 1. Initialise $fontsets, $charmaps and $kbdnames with the supported
  24. #    fontsets, charmaps, keyboard models, layouts and variants.  These
  25. #    lists can not be computed because the config script is invoked
  26. #    during the preconfiguration phase and the available fonts, ACM,
  27. #    etc. are not yet unpacked.
  28. #
  29. # 2. Function ask_debconf.  Ask user to choose amongst the options
  30. #    listed in $fontsets, $charmaps and $kbdnames.
  31. #
  32. # 3. Function guess_arch - detect the architecture and subarchitecture
  33. #
  34. # 4. Function available_fontsets - lists all fontfaces that can be
  35. #    used with $codeset.
  36. #
  37. # 5. Function available_fontsizes - lists all font sizes that can be
  38. #    used with the $codeset-$fontface combination.
  39. #
  40. # 6. Set $locale.  Set $default_codeset and $codeset_priority acording
  41. #    to $locale.
  42. #
  43. # 7. Set $default_layout and acording to $locale. default_variant=''
  44. #
  45. # 8. Set $default_charmap and $charmap_priority acording to $locale.
  46. #
  47. # 9. Set $arch.  Set $default_model and $model_priority acording to
  48. #    $arch.
  49. #
  50. # 10. Read /etc/default/console-setup and store values into debconf
  51. #     db.  Four very long case instructions in order to translate
  52. #     options like "grp:caps_toggle" to human-readable strings like
  53. #     "Caps Lock".
  54. #
  55. # 11. Ask the Debconf questions starting from STATE=1 and ending after
  56. #     STATE=9.  Again four long case instructions in STATE=4 to
  57. #     translate "Caps Lock" to "grp:caps_toggle".
  58.  
  59. # This script would be simpler and faster if written in Perl but with
  60. # Shell it can be used in the Installer
  61.  
  62. set -e
  63.  
  64. . /usr/share/debconf/confmodule
  65.  
  66. CONFIGFILE=/etc/default/console-setup
  67.  
  68. default_ttys=''
  69. default_charmap=''
  70. default_codeset=''
  71. default_fontface=''
  72. default_fontsize=''
  73. default_toggle=''
  74. default_switch=''
  75. default_altgr=''
  76. default_compose=''
  77. default_model=''
  78. default_layout=''
  79. default_variant=''
  80. ACTIVE_CONSOLES=''
  81. CHARMAP=''
  82. CODESET=''
  83. FONTFACE=''
  84. FONTSIZE=''
  85. XKBMODEL=''
  86. XKBLAYOUT=''
  87. XKBVARIANT=''
  88. XKBOPTIONS=''
  89.  
  90.  
  91. package=console-setup
  92. # package=console-setup
  93.  
  94. fontsets='Arabic-Fixed15
  95. Arabic-Fixed16
  96. Arabic-VGA14
  97. Arabic-VGA16
  98. Arabic-VGA8
  99. Armenian-Fixed13
  100. Armenian-Fixed14
  101. Armenian-Fixed15
  102. Armenian-Fixed16
  103. Armenian-Fixed18
  104. CyrAsia-Fixed13
  105. CyrAsia-Fixed14
  106. CyrAsia-Fixed15
  107. CyrAsia-Fixed16
  108. CyrAsia-Fixed18
  109. CyrAsia-Terminus12x6
  110. CyrAsia-Terminus14
  111. CyrAsia-Terminus16
  112. CyrAsia-Terminus20x10
  113. CyrAsia-Terminus24x12
  114. CyrAsia-Terminus28x14
  115. CyrAsia-Terminus32x16
  116. CyrAsia-TerminusBold14
  117. CyrAsia-TerminusBold16
  118. CyrAsia-TerminusBold20x10
  119. CyrAsia-TerminusBold24x12
  120. CyrAsia-TerminusBold28x14
  121. CyrAsia-TerminusBold32x16
  122. CyrAsia-TerminusBoldVGA14
  123. CyrAsia-TerminusBoldVGA16
  124. CyrKoi-Fixed13
  125. CyrKoi-Fixed14
  126. CyrKoi-Fixed15
  127. CyrKoi-Fixed16
  128. CyrKoi-Fixed18
  129. CyrKoi-Terminus12x6
  130. CyrKoi-Terminus14
  131. CyrKoi-Terminus16
  132. CyrKoi-Terminus20x10
  133. CyrKoi-Terminus24x12
  134. CyrKoi-Terminus28x14
  135. CyrKoi-Terminus32x16
  136. CyrKoi-TerminusBold14
  137. CyrKoi-TerminusBold16
  138. CyrKoi-TerminusBold20x10
  139. CyrKoi-TerminusBold24x12
  140. CyrKoi-TerminusBold28x14
  141. CyrKoi-TerminusBold32x16
  142. CyrKoi-TerminusBoldVGA14
  143. CyrKoi-TerminusBoldVGA16
  144. CyrKoi-VGA14
  145. CyrKoi-VGA16
  146. CyrKoi-VGA8
  147. CyrSlav-Fixed13
  148. CyrSlav-Fixed14
  149. CyrSlav-Fixed15
  150. CyrSlav-Fixed16
  151. CyrSlav-Fixed18
  152. CyrSlav-Terminus12x6
  153. CyrSlav-Terminus14
  154. CyrSlav-Terminus16
  155. CyrSlav-Terminus20x10
  156. CyrSlav-Terminus24x12
  157. CyrSlav-Terminus28x14
  158. CyrSlav-Terminus32x16
  159. CyrSlav-TerminusBold14
  160. CyrSlav-TerminusBold16
  161. CyrSlav-TerminusBold20x10
  162. CyrSlav-TerminusBold24x12
  163. CyrSlav-TerminusBold28x14
  164. CyrSlav-TerminusBold32x16
  165. CyrSlav-TerminusBoldVGA14
  166. CyrSlav-TerminusBoldVGA16
  167. CyrSlav-VGA14
  168. CyrSlav-VGA16
  169. CyrSlav-VGA8
  170. Ethiopian-Fixed15
  171. Ethiopian-Fixed18
  172. Ethiopian-Goha12
  173. Ethiopian-Goha14
  174. Ethiopian-Goha16
  175. Ethiopian-GohaClassic12
  176. Ethiopian-GohaClassic14
  177. Ethiopian-GohaClassic16
  178. Georgian-Fixed13
  179. Georgian-Fixed14
  180. Georgian-Fixed15
  181. Georgian-Fixed16
  182. Georgian-Fixed18
  183. Greek-Fixed13
  184. Greek-Fixed14
  185. Greek-Fixed15
  186. Greek-Fixed16
  187. Greek-Fixed18
  188. Greek-Terminus12x6
  189. Greek-Terminus14
  190. Greek-Terminus16
  191. Greek-Terminus20x10
  192. Greek-Terminus24x12
  193. Greek-Terminus28x14
  194. Greek-Terminus32x16
  195. Greek-TerminusBold14
  196. Greek-TerminusBold16
  197. Greek-TerminusBold20x10
  198. Greek-TerminusBold24x12
  199. Greek-TerminusBold28x14
  200. Greek-TerminusBold32x16
  201. Greek-TerminusBoldVGA14
  202. Greek-TerminusBoldVGA16
  203. Greek-VGA14
  204. Greek-VGA16
  205. Greek-VGA8
  206. Hebrew-Fixed13
  207. Hebrew-Fixed14
  208. Hebrew-Fixed15
  209. Hebrew-Fixed16
  210. Hebrew-Fixed18
  211. Hebrew-VGA14
  212. Hebrew-VGA16
  213. Hebrew-VGA8
  214. Lao-Fixed14
  215. Lao-Fixed15
  216. Lao-Fixed16
  217. Lat15-Fixed13
  218. Lat15-Fixed14
  219. Lat15-Fixed15
  220. Lat15-Fixed16
  221. Lat15-Fixed18
  222. Lat15-Terminus12x6
  223. Lat15-Terminus14
  224. Lat15-Terminus16
  225. Lat15-Terminus20x10
  226. Lat15-Terminus24x12
  227. Lat15-Terminus28x14
  228. Lat15-Terminus32x16
  229. Lat15-TerminusBold14
  230. Lat15-TerminusBold16
  231. Lat15-TerminusBold20x10
  232. Lat15-TerminusBold24x12
  233. Lat15-TerminusBold28x14
  234. Lat15-TerminusBold32x16
  235. Lat15-TerminusBoldVGA14
  236. Lat15-TerminusBoldVGA16
  237. Lat15-VGA14
  238. Lat15-VGA16
  239. Lat15-VGA8
  240. Lat2-Fixed13
  241. Lat2-Fixed14
  242. Lat2-Fixed15
  243. Lat2-Fixed16
  244. Lat2-Fixed18
  245. Lat2-Terminus12x6
  246. Lat2-Terminus14
  247. Lat2-Terminus16
  248. Lat2-Terminus20x10
  249. Lat2-Terminus24x12
  250. Lat2-Terminus28x14
  251. Lat2-Terminus32x16
  252. Lat2-TerminusBold14
  253. Lat2-TerminusBold16
  254. Lat2-TerminusBold20x10
  255. Lat2-TerminusBold24x12
  256. Lat2-TerminusBold28x14
  257. Lat2-TerminusBold32x16
  258. Lat2-TerminusBoldVGA14
  259. Lat2-TerminusBoldVGA16
  260. Lat2-VGA14
  261. Lat2-VGA16
  262. Lat2-VGA8
  263. Lat38-Fixed13
  264. Lat38-Fixed14
  265. Lat38-Fixed15
  266. Lat38-Fixed16
  267. Lat38-Fixed18
  268. Lat38-VGA14
  269. Lat38-VGA16
  270. Lat38-VGA8
  271. Lat7-Fixed13
  272. Lat7-Fixed14
  273. Lat7-Fixed15
  274. Lat7-Fixed16
  275. Lat7-Fixed18
  276. Lat7-Terminus12x6
  277. Lat7-Terminus14
  278. Lat7-Terminus16
  279. Lat7-Terminus20x10
  280. Lat7-Terminus24x12
  281. Lat7-Terminus28x14
  282. Lat7-Terminus32x16
  283. Lat7-TerminusBold14
  284. Lat7-TerminusBold16
  285. Lat7-TerminusBold20x10
  286. Lat7-TerminusBold24x12
  287. Lat7-TerminusBold28x14
  288. Lat7-TerminusBold32x16
  289. Lat7-TerminusBoldVGA14
  290. Lat7-TerminusBoldVGA16
  291. Lat7-VGA14
  292. Lat7-VGA16
  293. Lat7-VGA8
  294. Thai-Fixed13
  295. Thai-Fixed14
  296. Thai-Fixed15
  297. Thai-Fixed16
  298. Thai-Fixed18
  299. Uni1-Fixed15
  300. Uni1-Fixed16
  301. Uni1-VGA14
  302. Uni1-VGA16
  303. Uni1-VGA8
  304. Uni2-Fixed13
  305. Uni2-Fixed14
  306. Uni2-Fixed15
  307. Uni2-Fixed16
  308. Uni2-Fixed18
  309. Uni2-Terminus12x6
  310. Uni2-Terminus14
  311. Uni2-Terminus16
  312. Uni2-Terminus20x10
  313. Uni2-Terminus24x12
  314. Uni2-Terminus28x14
  315. Uni2-Terminus32x16
  316. Uni2-TerminusBold14
  317. Uni2-TerminusBold16
  318. Uni2-TerminusBold20x10
  319. Uni2-TerminusBold24x12
  320. Uni2-TerminusBold28x14
  321. Uni2-TerminusBold32x16
  322. Uni2-TerminusBoldVGA14
  323. Uni2-TerminusBoldVGA16
  324. Uni2-VGA14
  325. Uni2-VGA16
  326. Uni2-VGA8
  327. Uni3-Fixed13
  328. Uni3-Fixed14
  329. Uni3-Fixed15
  330. Uni3-Fixed16
  331. Uni3-Fixed18
  332. Uni3-Terminus12x6
  333. Uni3-Terminus14
  334. Uni3-Terminus16
  335. Uni3-Terminus20x10
  336. Uni3-Terminus24x12
  337. Uni3-Terminus28x14
  338. Uni3-Terminus32x16
  339. Uni3-TerminusBold14
  340. Uni3-TerminusBold16
  341. Uni3-TerminusBold20x10
  342. Uni3-TerminusBold24x12
  343. Uni3-TerminusBold28x14
  344. Uni3-TerminusBold32x16
  345. Uni3-TerminusBoldVGA14
  346. Uni3-TerminusBoldVGA16
  347. Vietnamese-Fixed13
  348. Vietnamese-Fixed14
  349. Vietnamese-Fixed15
  350. Vietnamese-Fixed16
  351. Vietnamese-Fixed18
  352. '
  353. # fontsets='Arabic-Fixed15
  354. # Arabic-Fixed16
  355. # Arabic-vga14
  356. # ... 
  357. # Vietnamese-Fixed18
  358. # '
  359.  
  360. charmaps='ARMSCII-8
  361. CP1251
  362. CP1255
  363. CP1256
  364. GEORGIAN-ACADEMY
  365. GEORGIAN-PS
  366. IBM1133
  367. ISIRI-3342
  368. ISO-8859-1
  369. ISO-8859-10
  370. ISO-8859-11
  371. ISO-8859-13
  372. ISO-8859-14
  373. ISO-8859-15
  374. ISO-8859-16
  375. ISO-8859-2
  376. ISO-8859-3
  377. ISO-8859-4
  378. ISO-8859-5
  379. ISO-8859-6
  380. ISO-8859-7
  381. ISO-8859-8
  382. ISO-8859-9
  383. KOI8-R
  384. KOI8-U
  385. TIS-620
  386. VISCII
  387. UTF-8'
  388.  
  389. # charmaps='ARMSCII-8
  390. # CP1251
  391. # CP1255
  392. # ...
  393. # UTF-8'
  394.  
  395. kbdnames='model*logidinovo*Logitech diNovo Keyboard
  396. model*amiga*Amiga
  397. model*acer_c300*Acer C300
  398. model*yahoo*Yahoo! Internet Keyboard
  399. model*macintosh*Macintosh
  400. model*dell101*Dell 101-key PC
  401. model*mx2500*Memorex MX2500 EZ-Access Keyboard
  402. model*geniuscomfy2*Genius Comfy KB-21e-Scroll
  403. model*pc98*PC-98xx Series
  404. model*dell*Dell
  405. model*logiinkseusb*Logitech iTouch Internet Navigator Keyboard SE (USB)
  406. model*ipaq*Compaq iPaq Keyboard
  407. model*compalfl90*FL90
  408. model*sk1300*SK-1300
  409. model*thinkpad60*IBM ThinkPad R60/T60/R61/T61
  410. model*vsonku306*ViewSonic KU-306 Internet Keyboard
  411. model*mx2750*Memorex MX2750
  412. model*logitech_g15*Logitech G15 extra keys via G15daemon
  413. model*scorpius*Advance Scorpius KI
  414. model*compaqik18*Compaq Internet Keyboard (18 keys)
  415. model*brother*Brother Internet Keyboard
  416. model*acpi*ACPI Standard
  417. model*pc105*Generic 105-key (Intl) PC
  418. model*btc9019u*BTC 9019U
  419. model*gyration*Gyration
  420. model*acer_ferrari4k*Acer Ferrari 4000
  421. model*qtronix*QTronix Scorpius 98N+
  422. model*fscaa1667g*Fujitsu-Siemens Computers AMILO laptop
  423. model*microsoftccurve2k*Microsoft Comfort Curve Keyboard 2000
  424. model*hpxt1000*Hewlett-Packard Omnibook XT1000
  425. model*macintosh_hhk*Happy Hacking Keyboard for Mac
  426. model*acer_laptop*Acer Laptop
  427. model*microsoftelite*Microsoft Natural Keyboard Elite
  428. model*btc9116u*BTC 9116U Mini Wireless Internet and Gaming
  429. model*hhk*Happy Hacking Keyboard
  430. model*diamond*Diamond 9801 / 9802 series
  431. model*hpxe3gc*Hewlett-Packard Omnibook XE3 GC
  432. model*samsung4510*Samsung SDM 4510P
  433. model*pc104*Generic 104-key PC
  434. model*sven303*SVEN Slim 303
  435. model*emachines*Laptop/notebook eMachines m68xx
  436. model*thinkpadz60*IBM ThinkPad Z60m/Z60t/Z61m/Z61t
  437. model*oretec*Ortek MCK-800 MM/Internet keyboard
  438. model*btc6301urf*BTC 6301URF
  439. model*trustda*Trust Direct Access Keyboard
  440. model*genius*Genius Comfy KB-16M / Genius MM Keyboard KWD-910
  441. model*btc5090*BTC 5090
  442. model*dellm65*Dell Precision M65
  443. model*dexxa*Dexxa Wireless Desktop Keyboard
  444. model*logiex110*Logitech Cordless Desktop EX110
  445. model*geniuskb19e*Genius KB-19e NB
  446. model*btc5126t*BTC 5126T
  447. model*classmate*Classmate PC
  448. model*rapidaccess*IBM Rapid Access
  449. model*trust_slimline*Trust Slimline
  450. model*chicony9885*Chicony KB-9885
  451. model*logii350*Logitech Internet 350 Keyboard
  452. model*thinkpad*IBM ThinkPad 560Z/600/600E/A22E
  453. model*olpc*OLPC
  454. model*hpnx9020*Hewlett-Packard nx9020
  455. model*dellsk8125*Dell SK-8125
  456. model*trust*Trust Wireless Keyboard Classic
  457. model*asus_laptop*Asus Laptop
  458. model*mx1998*Memorex MX1998
  459. model*sk7100*SK-7100
  460. model*btc5113rf*BTC 5113RF Multimedia
  461. model*microsoftprousb*Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
  462. model*hpdv5*Hewlett-Packard Pavilion dv5
  463. model*btc9000*BTC 9000
  464. model*sp_inet*Super Power Multimedia Keyboard
  465. model*macbook79*MacBook/MacBook Pro (Intl)
  466. model*hpi6*Hewlett-Packard Internet Keyboard
  467. model*macintosh_old*Macintosh Old
  468. model*hp6000*Hewlett-Packard Omnibook 6000/6100
  469. model*logicdpa2*Logitech Cordless Desktop Pro (alternate option 2)
  470. model*btc9001ah*BTC 9001AH
  471. model*logicink*Logitech Internet Navigator Keyboard
  472. model*omnikey101*Northgate OmniKey 101
  473. model*cherrycyboard*Cherry CyBo@rd USB-Hub
  474. model*armada*Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
  475. model*macbook78*MacBook/MacBook Pro
  476. model*ibm_spacesaver*IBM Space Saver
  477. model*microsoftmult*Microsoft Wireless Multimedia Keyboard 1.0A
  478. model*pc101*Generic 101-key PC
  479. model*logicd_opt*Logitech Cordless Desktop Optical
  480. model*logiultraxc*Logitech Ultra-X Cordless Media Desktop Keyboard
  481. model*microsoftprose*Microsoft Internet Keyboard Pro, Swedish
  482. model*itouch*Logitech iTouch
  483. model*hpzt11xx*Hewlett-Packard Pavilion ZT11xx
  484. model*geniuscomfy*Genius Comfy KB-12e
  485. model*logiultrax*Logitech Ultra-X Keyboard
  486. model*cherryblueb*Cherry CyMotion Master XPress
  487. model*chicony0420*Chicony KU-0420
  488. model*hp5xx*Hewlett-Packard Omnibook 5xx
  489. model*apple*Apple
  490. model*microsoftinet*Microsoft Internet Keyboard
  491. model*samsung4500*Samsung SDM 4500P
  492. model*microsoft7000*Microsoft Natural Wireless Ergonomic Keyboard 7000
  493. model*logiik*Logitech Internet Keyboard
  494. model*cherryblue*Cherry Blue Line CyBo@rd
  495. model*chicony*Chicony Internet Keyboard
  496. model*a4_rfkb23*A4Tech Wireless Desktop RFKB-23
  497. model*compaqik13*Compaq Internet Keyboard (13 keys)
  498. model*ataritt*Atari TT
  499. model*silvercrest*SILVERCREST Multimedia Wireless Keyboard
  500. model*targa_v811*Targa Visionary 811
  501. model*propeller*Propeller Voyager (KTEZ-1000)
  502. model*dellsk8135*Dell SK-8135
  503. model*benqx*BenQ X-Touch
  504. model*hp500fa*Hewlett-Packard Omnibook 500 FA
  505. model*symplon*Symplon PaceBook (tablet PC)
  506. model*microsoft*Microsoft Natural
  507. model*precision_m*Dell Laptop/notebook Precision M series
  508. model*logicd*Logitech Cordless Desktop
  509. model*benqx730*BenQ X-Touch 730
  510. model*logiinkse*Logitech iTouch Internet Navigator Keyboard SE
  511. model*latitude*Dell Latitude series laptop
  512. model*ennyah_dkb1008*Ennyah DKB-1008
  513. model*pc102*Generic 102-key (Intl) PC
  514. model*logiitc*Logitech iTouch Cordless Keyboard (model Y-RB6)
  515. model*sk6200*SK-6200
  516. model*cymotionlinux*Cherry CyMotion Master Linux
  517. model*logidinovoedge*Logitech diNovo Edge Keyboard
  518. model*everex*Everex STEPnote
  519. model*a4techKB21*A4Tech KB-21
  520. model*compaqik7*Compaq Internet Keyboard (7 keys)
  521. model*apple_laptop*Apple Laptop
  522. model*thinkpadintl*IBM ThinkPad 560Z/600/600E/A22E, Intl
  523. model*winbook*Winbook Model XP5
  524. model*logitech_base*Logitech Generic Keyboard
  525. model*inspiron*Dell Laptop/notebook Inspiron 6xxx/8xxx
  526. model*logiclx300*Logitech Cordless Desktop LX-300
  527. model*logicdn*Logitech Cordless Desktop Navigator
  528. model*rapidaccess2*IBM Rapid Access II
  529. model*sun4*Sun Type 4
  530. model*presario*Laptop/notebook Compaq (eg. Presario) Internet Keyboard
  531. model*cherrycmexpert*Cherry CyMotion Expert
  532. model*microsoftoffice*Microsoft Office Keyboard
  533. model*evdev*Evdev-managed keyboard
  534. model*cherrybunlim*Cherry B.UNLIMITED
  535. model*honeywell_euroboard*Honeywell Euroboard
  536. model*dtk2000*DTK2000
  537. model*logicfn*Logitech Cordless Freedom/Desktop Navigator
  538. model*sun6*Sun Type 5/6
  539. model*logimel*Logitech Media Elite Keyboard
  540. model*toshiba_s3000*Toshiba Satellite S3000
  541. model*airkey*Acer AirKey V
  542. model*sk2500*SK-2500
  543. model*azonaRF2300*Azona RF2300 wireless Internet Keyboard
  544. model*hpxe3gf*Hewlett-Packard Omnibook XE3 GF
  545. model*hp250x*Hewlett-Packard SK-250x Multimedia Keyboard
  546. model*unitekkb1925*Unitek KB-1925
  547. model*microsoftprooem*Microsoft Natural Keyboard Pro OEM
  548. model*benqx800*BenQ X-Touch 800
  549. model*sun5*Sun Type 5
  550. model*logiaccess*Logitech Access Keyboard
  551. model*btc9000a*BTC 9000A
  552. model*microsoftpro*Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
  553. model*SKIP*Do not configure keyboard; keep kernel keymap
  554. model*cherrybluea*Cherry Blue Line CyBo@rd (alternate option)
  555. model*geniuskkb2050hs*Genius KKB-2050HS
  556. model*logicd_it*Logitech Cordless Desktop iTouch
  557. model*chicony0108*Chicony KU-0108
  558. model*dellusbmm*Dell USB Multimedia Keyboard
  559. model*a4techKBS8*A4Tech KBS-8
  560. model*sven*SVEN Ergonomic 2500
  561. model*compaqeak8*Compaq Easy Access Keyboard
  562. model*flexpro*Keytronic FlexPro
  563. model*logicda*Logitech Cordless Desktop (alternate option)
  564. layout*sy*Syria
  565. variant*sy**Syria
  566. variant*sy*syc_phonetic*Syria - Syriac phonetic
  567. variant*sy*syc*Syria - Syriac
  568. variant*sy*ku*Syria - Kurdish, Latin Q
  569. variant*sy*ku_alt*Syria - Kurdish, Latin Alt-Q
  570. variant*sy*ku_f*Syria - Kurdish, (F)
  571. layout*se*Sweden
  572. variant*se**Sweden
  573. variant*se*svdvorak*Sweden - Svdvorak
  574. variant*se*dvorak*Sweden - Dvorak
  575. variant*se*nodeadkeys*Sweden - Eliminate dead keys
  576. variant*se*rus*Sweden - Russian phonetic
  577. variant*se*smi*Sweden - Northern Saami
  578. variant*se*rus_nodeadkeys*Sweden - Russian phonetic, eliminate dead keys
  579. variant*se*mac*Sweden - Macintosh
  580. layout*mn*Mongolia
  581. variant*mn**Mongolia
  582. layout*hu*Hungary
  583. variant*hu**Hungary
  584. variant*hu*101_qwerty_comma_dead*Hungary - 101/qwerty/comma/Dead keys
  585. variant*hu*102_qwerty_dot_dead*Hungary - 102/qwerty/dot/Dead keys
  586. variant*hu*101_qwertz_dot_dead*Hungary - 101/qwertz/dot/Dead keys
  587. variant*hu*101_qwertz_comma_dead*Hungary - 101/qwertz/comma/Dead keys
  588. variant*hu*101_qwertz_dot_nodead*Hungary - 101/qwertz/dot/Eliminate dead keys
  589. variant*hu*101_qwerty_comma_nodead*Hungary - 101/qwerty/comma/Eliminate dead keys
  590. variant*hu*101_qwerty_dot_dead*Hungary - 101/qwerty/dot/Dead keys
  591. variant*hu*101_qwertz_comma_nodead*Hungary - 101/qwertz/comma/Eliminate dead keys
  592. variant*hu*nodeadkeys*Hungary - Eliminate dead keys
  593. variant*hu*102_qwertz_dot_nodead*Hungary - 102/qwertz/dot/Eliminate dead keys
  594. variant*hu*102_qwerty_dot_nodead*Hungary - 102/qwerty/dot/Eliminate dead keys
  595. variant*hu*102_qwerty_comma_nodead*Hungary - 102/qwerty/comma/Eliminate dead keys
  596. variant*hu*102_qwerty_comma_dead*Hungary - 102/qwerty/comma/Dead keys
  597. variant*hu*standard*Hungary - Standard
  598. variant*hu*102_qwertz_comma_nodead*Hungary - 102/qwertz/comma/Eliminate dead keys
  599. variant*hu*101_qwerty_dot_nodead*Hungary - 101/qwerty/dot/Eliminate dead keys
  600. variant*hu*102_qwertz_dot_dead*Hungary - 102/qwertz/dot/Dead keys
  601. variant*hu*qwerty*Hungary - qwerty
  602. variant*hu*102_qwertz_comma_dead*Hungary - 102/qwertz/comma/Dead keys
  603. layout*np*Nepal
  604. variant*np**Nepal
  605. layout*pk*Pakistan
  606. variant*pk**Pakistan
  607. variant*pk*ara*Pakistan - Arabic
  608. variant*pk*urd-nla*Pakistan - NLA
  609. variant*pk*urd-crulp*Pakistan - CRULP
  610. layout*gn*Guinea
  611. variant*gn**Guinea
  612. layout*lk*Sri Lanka
  613. variant*lk**Sri Lanka
  614. variant*lk*tam_TAB*Sri Lanka - Tamil TAB Typewriter
  615. variant*lk*tam_unicode*Sri Lanka - Tamil Unicode
  616. layout*kr*Korea, Republic of
  617. variant*kr**Korea, Republic of
  618. variant*kr*kr104*Korea, Republic of - 101/104 key Compatible
  619. layout*cn*China
  620. variant*cn**China
  621. variant*cn*tib_asciinum*China - Tibetan (with ASCII numerals)
  622. variant*cn*tib*China - Tibetan
  623. layout*ee*Estonia
  624. variant*ee**Estonia
  625. variant*ee*dvorak*Estonia - Dvorak
  626. variant*ee*nodeadkeys*Estonia - Eliminate dead keys
  627. variant*ee*us*Estonia - US keyboard with Estonian letters
  628. layout*et*Ethiopia
  629. variant*et**Ethiopia
  630. layout*za*South Africa
  631. variant*za**South Africa
  632. layout*mao*Maori
  633. variant*mao**Maori
  634. layout*am*Armenia
  635. variant*am**Armenia
  636. variant*am*eastern-alt*Armenia - Alternative Eastern
  637. variant*am*western*Armenia - Western
  638. variant*am*phonetic-alt*Armenia - Alternative Phonetic
  639. variant*am*eastern*Armenia - Eastern
  640. variant*am*phonetic*Armenia - Phonetic
  641. layout*tm*Turkmenistan
  642. variant*tm**Turkmenistan
  643. variant*tm*alt*Turkmenistan - Alt-Q
  644. layout*latam*Latin American
  645. variant*latam**Latin American
  646. variant*latam*deadtilde*Latin American - Include dead tilde
  647. variant*latam*sundeadkeys*Latin American - Sun dead keys
  648. variant*latam*nodeadkeys*Latin American - Eliminate dead keys
  649. layout*nec_vndr/jp*Japan (PC-98xx Series)
  650. variant*nec_vndr/jp**Japan (PC-98xx Series)
  651. layout*ie*Ireland
  652. variant*ie**Ireland
  653. variant*ie*ogam_is434*Ireland - Ogham IS434
  654. variant*ie*CloGaelach*Ireland - CloGaelach
  655. variant*ie*ogam*Ireland - Ogham
  656. variant*ie*UnicodeExpert*Ireland - UnicodeExpert
  657. layout*pt*Portugal
  658. variant*pt**Portugal
  659. variant*pt*sundeadkeys*Portugal - Sun dead keys
  660. variant*pt*nativo-epo*Portugal - Nativo for Esperanto
  661. variant*pt*mac_sundeadkeys*Portugal - Macintosh, Sun dead keys
  662. variant*pt*mac_nodeadkeys*Portugal - Macintosh, eliminate dead keys
  663. variant*pt*nodeadkeys*Portugal - Eliminate dead keys
  664. variant*pt*nativo-us*Portugal - Nativo for USA keyboards
  665. variant*pt*nativo*Portugal - Nativo
  666. variant*pt*mac*Portugal - Macintosh
  667. layout*ng*Nigeria
  668. variant*ng**Nigeria
  669. variant*ng*igbo*Nigeria - Igbo
  670. variant*ng*yoruba*Nigeria - Yoruba
  671. variant*ng*hausa*Nigeria - Hausa
  672. layout*lv*Latvia
  673. variant*lv**Latvia
  674. variant*lv*tilde*Latvia - Tilde (~) variant
  675. variant*lv*fkey*Latvia - F-letter (F) variant
  676. variant*lv*apostrophe*Latvia - Apostrophe () variant
  677. layout*tr*Turkey
  678. variant*tr**Turkey
  679. variant*tr*sundeadkeys*Turkey - Sun dead keys
  680. variant*tr*ku*Turkey - Kurdish, Latin Q
  681. variant*tr*alt*Turkey - Alt-Q
  682. variant*tr*ku_alt*Turkey - Kurdish, Latin Alt-Q
  683. variant*tr*f*Turkey - (F)
  684. variant*tr*ku_f*Turkey - Kurdish, (F)
  685. variant*tr*crh_alt*Turkey - Crimean Tatar (Turkish Alt-Q)
  686. variant*tr*intl*Turkey - International (with dead keys)
  687. variant*tr*crh*Turkey - Crimean Tatar (Turkish Q)
  688. variant*tr*crh_f*Turkey - Crimean Tatar (Turkish F)
  689. layout*is*Iceland
  690. variant*is**Iceland
  691. variant*is*dvorak*Iceland - Dvorak
  692. variant*is*Sundeadkeys*Iceland - Sun dead keys
  693. variant*is*nodeadkeys*Iceland - Eliminate dead keys
  694. variant*is*mac*Iceland - Macintosh
  695. layout*rs*Serbia
  696. variant*rs**Serbia
  697. variant*rs*latinyz*Serbia - Latin qwerty
  698. variant*rs*latin*Serbia - Latin
  699. variant*rs*alternatequotes*Serbia - With guillemets
  700. variant*rs*yz*Serbia - Z and ZHE swapped
  701. variant*rs*latinunicodeyz*Serbia - Latin Unicode qwerty
  702. variant*rs*latinalternatequotes*Serbia - Latin with guillemets
  703. variant*rs*latinunicode*Serbia - Latin Unicode
  704. layout*gh*Ghana
  705. variant*gh**Ghana
  706. variant*gh*hausa*Ghana - Hausa
  707. variant*gh*ewe*Ghana - Ewe
  708. variant*gh*generic*Ghana - Multilingual
  709. variant*gh*ga*Ghana - Ga
  710. variant*gh*fula*Ghana - Fula
  711. variant*gh*akan*Ghana - Akan
  712. layout*ma*Morocco
  713. variant*ma**Morocco
  714. variant*ma*tifinagh-phonetic*Morocco - Tifinagh Phonetic
  715. variant*ma*tifinagh-extended-phonetic*Morocco - Tifinagh Extended Phonetic
  716. variant*ma*tifinagh-extended*Morocco - Tifinagh Extended
  717. variant*ma*tifinagh*Morocco - Tifinagh
  718. variant*ma*french*Morocco - French
  719. variant*ma*tifinagh-alt-phonetic*Morocco - Tifinagh Alternative Phonetic
  720. variant*ma*tifinagh-alt*Morocco - Tifinagh Alternative
  721. layout*fo*Faroe Islands
  722. variant*fo**Faroe Islands
  723. variant*fo*nodeadkeys*Faroe Islands - Eliminate dead keys
  724. layout*mv*Maldives
  725. variant*mv**Maldives
  726. layout*bd*Bangladesh
  727. variant*bd**Bangladesh
  728. variant*bd*probhat*Bangladesh - Probhat
  729. layout*nl*Netherlands
  730. variant*nl**Netherlands
  731. variant*nl*sundeadkeys*Netherlands - Sun dead keys
  732. variant*nl*std*Netherlands - Standard
  733. variant*nl*mac*Netherlands - Macintosh
  734. layout*br*Brazil
  735. variant*br**Brazil
  736. variant*br*dvorak*Brazil - Dvorak
  737. variant*br*nativo-us*Brazil - Nativo for USA keyboards
  738. variant*br*nativo-epo*Brazil - Nativo for Esperanto
  739. variant*br*nodeadkeys*Brazil - Eliminate dead keys
  740. variant*br*nativo*Brazil - Nativo
  741. layout*jp*Japan
  742. variant*jp**Japan
  743. variant*jp*kana*Japan - Kana
  744. variant*jp*OADG109A*Japan - OADG 109A
  745. layout*sk*Slovakia
  746. variant*sk**Slovakia
  747. variant*sk*qwerty*Slovakia - qwerty
  748. variant*sk*bksl*Slovakia - Extended Backslash
  749. variant*sk*qwerty_bksl*Slovakia - qwerty, extended Backslash
  750. layout*cd*Congo, Democratic Republic of the
  751. variant*cd**Congo, Democratic Republic of the
  752. layout*tj*Tajikistan
  753. variant*tj**Tajikistan
  754. variant*tj*legacy*Tajikistan - Legacy
  755. layout*hr*Croatia
  756. variant*hr**Croatia
  757. variant*hr*unicodeus*Croatia - US keyboard with Croatian digraphs
  758. variant*hr*unicode*Croatia - Use Croatian digraphs
  759. variant*hr*alternatequotes*Croatia - Use guillemets for quotes
  760. variant*hr*us*Croatia - US keyboard with Croatian letters
  761. layout*pl*Poland
  762. variant*pl**Poland
  763. variant*pl*ru_phonetic_dvorak*Poland - Russian phonetic Dvorak
  764. variant*pl*csb*Poland - Kashubian
  765. variant*pl*dvorak*Poland - Dvorak
  766. variant*pl*dvorak_altquotes*Poland - Dvorak, Polish quotes on key 1
  767. variant*pl*qwertz*Poland - qwertz
  768. variant*pl*dvorak_quotes*Poland - Dvorak, Polish quotes on quotemark key
  769. layout*si*Slovenia
  770. variant*si**Slovenia
  771. variant*si*us*Slovenia - US keyboard with Slovenian letters
  772. variant*si*alternatequotes*Slovenia - Use guillemets for quotes
  773. layout*il*Israel
  774. variant*il**Israel
  775. variant*il*biblical*Israel - Biblical Hebrew (Tiro)
  776. variant*il*lyx*Israel - lyx
  777. variant*il*phonetic*Israel - Phonetic
  778. layout*in*India
  779. variant*in**India
  780. variant*in*urd-phonetic*India - Urdu, Phonetic
  781. variant*in*guru*India - Gurmukhi
  782. variant*in*guj*India - Gujarati
  783. variant*in*bolnagri*India - Hindi Bolnagri
  784. variant*in*urd-phonetic3*India - Urdu, Alternative phonetic
  785. variant*in*jhelum*India - Gurmukhi Jhelum
  786. variant*in*kan*India - Kannada
  787. variant*in*mal*India - Malayalam
  788. variant*in*mal_lalitha*India - Malayalam Lalitha
  789. variant*in*tam_unicode*India - Tamil Unicode
  790. variant*in*tam*India - Tamil
  791. variant*in*ben*India - Bengali
  792. variant*in*tam_TSCII*India - Tamil TSCII Typewriter
  793. variant*in*hin-wx*India - Hindi Wx
  794. variant*in*tel*India - Telugu
  795. variant*in*urd-winkeys*India - Urdu, Winkeys
  796. variant*in*ori*India - Oriya
  797. variant*in*tam_TAB*India - Tamil TAB Typewriter
  798. variant*in*ben_probhat*India - Bengali Probhat
  799. layout*mt*Malta
  800. variant*mt**Malta
  801. variant*mt*us*Malta - Maltese keyboard with US layout
  802. layout*es*Spain
  803. variant*es**Spain
  804. variant*es*deadtilde*Spain - Include dead tilde
  805. variant*es*dvorak*Spain - Dvorak
  806. variant*es*sundeadkeys*Spain - Sun dead keys
  807. variant*es*nodeadkeys*Spain - Eliminate dead keys
  808. variant*es*cat*Spain - Catalan variant with middle-dot L
  809. variant*es*mac*Spain - Macintosh
  810. variant*es*ast*Spain - Asturian variant with bottom-dot H and bottom-dot L
  811. layout*mk*Macedonia
  812. variant*mk**Macedonia
  813. variant*mk*nodeadkeys*Macedonia - Eliminate dead keys
  814. layout*gb*United Kingdom
  815. variant*gb**United Kingdom
  816. variant*gb*dvorakukp*United Kingdom - Dvorak (UK Punctuation)
  817. variant*gb*dvorak*United Kingdom - Dvorak
  818. variant*gb*intl*United Kingdom - International (with dead keys)
  819. variant*gb*colemak*United Kingdom - Colemak
  820. variant*gb*mac*United Kingdom - Macintosh
  821. variant*gb*extd*United Kingdom - Extended - Winkeys
  822. layout*ch*Switzerland
  823. variant*ch**Switzerland
  824. variant*ch*fr_sundeadkeys*Switzerland - French, Sun dead keys
  825. variant*ch*fr_mac*Switzerland - French (Macintosh)
  826. variant*ch*fr*Switzerland - French
  827. variant*ch*fr_nodeadkeys*Switzerland - French, eliminate dead keys
  828. variant*ch*de_sundeadkeys*Switzerland - German, Sun dead keys
  829. variant*ch*de_nodeadkeys*Switzerland - German, eliminate dead keys
  830. variant*ch*de_mac*Switzerland - German (Macintosh)
  831. layout*az*Azerbaijan
  832. variant*az**Azerbaijan
  833. variant*az*cyrillic*Azerbaijan - Cyrillic
  834. layout*bg*Bulgaria
  835. variant*bg**Bulgaria
  836. variant*bg*phonetic*Bulgaria - Traditional Phonetic
  837. variant*bg*bas_phonetic*Bulgaria - Standard Phonetic
  838. layout*la*Laos
  839. variant*la**Laos
  840. layout*lt*Lithuania
  841. variant*lt**Lithuania
  842. variant*lt*us*Lithuania - US keyboard with Lithuanian letters
  843. variant*lt*lekp*Lithuania - LEKP
  844. variant*lt*lekpa*Lithuania - LEKPa
  845. variant*lt*std*Lithuania - Standard
  846. variant*lt*ibm*Lithuania - IBM (LST 1205-92)
  847. variant*lt*balticplus*Lithuania - Baltic+
  848. layout*no*Norway
  849. variant*no**Norway
  850. variant*no*mac_nodeadkeys*Norway - Macintosh, eliminate dead keys
  851. variant*no*dvorak*Norway - Dvorak
  852. variant*no*smi_nodeadkeys*Norway - Northern Saami, eliminate dead keys
  853. variant*no*nodeadkeys*Norway - Eliminate dead keys
  854. variant*no*smi*Norway - Northern Saami
  855. variant*no*mac*Norway - Macintosh
  856. layout*ca*Canada
  857. variant*ca**Canada
  858. variant*ca*multi*Canada - Multilingual, first part
  859. variant*ca*fr-dvorak*Canada - French Dvorak
  860. variant*ca*eng*Canada - English
  861. variant*ca*shs*Canada - Secwepemctsin
  862. variant*ca*kut*Canada - Ktunaxa
  863. variant*ca*multix*Canada - Multilingual
  864. variant*ca*multi-2gr*Canada - Multilingual, second part
  865. variant*ca*ike*Canada - Inuktitut
  866. variant*ca*fr-legacy*Canada - French (legacy)
  867. layout*iq*Iraq
  868. variant*iq**Iraq
  869. variant*iq*ku*Iraq - Kurdish, Latin Q
  870. variant*iq*ku_ara*Iraq - Kurdish, Arabic-Latin
  871. variant*iq*ku_alt*Iraq - Kurdish, Latin Alt-Q
  872. variant*iq*ku_f*Iraq - Kurdish, (F)
  873. layout*me*Montenegro
  874. variant*me**Montenegro
  875. variant*me*cyrillic*Montenegro - Cyrillic
  876. variant*me*latinunicode*Montenegro - Latin unicode
  877. variant*me*latinyz*Montenegro - Latin qwerty
  878. variant*me*latinalternatequotes*Montenegro - Latin with guillemets
  879. variant*me*cyrillicyz*Montenegro - Cyrillic, Z and ZHE swapped
  880. variant*me*latinunicodeyz*Montenegro - Latin unicode qwerty
  881. variant*me*cyrillicalternatequotes*Montenegro - Cyrillic with guillemets
  882. layout*th*Thailand
  883. variant*th**Thailand
  884. variant*th*pat*Thailand - Pattachote
  885. variant*th*tis*Thailand - TIS-820.2538
  886. layout*ara*Arabic
  887. variant*ara**Arabic
  888. variant*ara*qwerty*Arabic - qwerty
  889. variant*ara*azerty*Arabic - azerty
  890. variant*ara*azerty_digits*Arabic - azerty/digits
  891. variant*ara*buckwalter*Arabic - Buckwalter
  892. variant*ara*qwerty_digits*Arabic - qwerty/digits
  893. variant*ara*digits*Arabic - digits
  894. layout*epo*Esperanto
  895. variant*epo**Esperanto
  896. variant*epo*legacy*Esperanto - displaced semicolon and quote (obsolete)
  897. layout*ir*Iran
  898. variant*ir**Iran
  899. variant*ir*pro_keypad*Iran - Pro Keypad
  900. variant*ir*keypad*Iran - Keypad
  901. variant*ir*pro*Iran - Pro
  902. variant*ir*ku*Iran - Kurdish, Latin Q
  903. variant*ir*ku_ara*Iran - Kurdish, Arabic-Latin
  904. variant*ir*ku_alt*Iran - Kurdish, Latin Alt-Q
  905. variant*ir*ku_f*Iran - Kurdish, (F)
  906. layout*by*Belarus
  907. variant*by**Belarus
  908. variant*by*winkeys*Belarus - Winkeys
  909. variant*by*latin*Belarus - Latin
  910. layout*vn*Vietnam
  911. variant*vn**Vietnam
  912. layout*kg*Kyrgyzstan
  913. variant*kg**Kyrgyzstan
  914. variant*kg*phonetic*Kyrgyzstan - Phonetic
  915. layout*ua*Ukraine
  916. variant*ua**Ukraine
  917. variant*ua*crh_alt*Ukraine - Crimean Tatar (Turkish Alt-Q)
  918. variant*ua*winkeys*Ukraine - Winkeys
  919. variant*ua*rstu_ru*Ukraine - Standard RSTU on Russian layout
  920. variant*ua*typewriter*Ukraine - Typewriter
  921. variant*ua*crh*Ukraine - Crimean Tatar (Turkish Q)
  922. variant*ua*crh_f*Ukraine - Crimean Tatar (Turkish F)
  923. variant*ua*rstu*Ukraine - Standard RSTU
  924. variant*ua*phonetic*Ukraine - Phonetic
  925. variant*ua*legacy*Ukraine - Legacy
  926. variant*ua*homophonic*Ukraine - Homophonic
  927. layout*ru*Russia
  928. variant*ru**Russia
  929. variant*ru*os_legacy*Russia - Ossetian, legacy
  930. variant*ru*udm*Russia - Udmurt
  931. variant*ru*os_winkeys*Russia - Ossetian, Winkeys
  932. variant*ru*cv_latin*Russia - Chuvash Latin
  933. variant*ru*kom*Russia - Komi
  934. variant*ru*phonetic*Russia - Phonetic
  935. variant*ru*legacy*Russia - Legacy
  936. variant*ru*cv*Russia - Chuvash
  937. variant*ru*xal*Russia - Kalmyk
  938. variant*ru*typewriter*Russia - Typewriter
  939. variant*ru*phonetic_winkeys*Russia - Phonetic Winkeys
  940. variant*ru*dos*Russia - DOS
  941. variant*ru*sah*Russia - Yakut
  942. variant*ru*tt*Russia - Tatar
  943. layout*fi*Finland
  944. variant*fi**Finland
  945. variant*fi*classic*Finland - Classic
  946. variant*fi*nodeadkeys*Finland - Eliminate dead keys
  947. variant*fi*smi*Finland - Northern Saami
  948. variant*fi*mac*Finland - Macintosh
  949. layout*ro*Romania
  950. variant*ro**Romania
  951. variant*ro*std_cedilla*Romania - Standard (Cedilla)
  952. variant*ro*crh_alt*Romania - Crimean Tatar (Turkish Alt-Q)
  953. variant*ro*winkeys*Romania - Winkeys
  954. variant*ro*crh_dobruca2*Romania - Crimean Tatar (Dobruca-2 Q)
  955. variant*ro*std*Romania - Standard
  956. variant*ro*crh_f*Romania - Crimean Tatar (Turkish F)
  957. variant*ro*crh_dobruca1*Romania - Crimean Tatar (Dobruca-1 Q)
  958. variant*ro*cedilla*Romania - Cedilla
  959. layout*kz*Kazakhstan
  960. variant*kz**Kazakhstan
  961. variant*kz*kazrus*Kazakhstan - Kazakh with Russian
  962. variant*kz*ruskaz*Kazakhstan - Russian with Kazakh
  963. layout*gr*Greece
  964. variant*gr**Greece
  965. variant*gr*extended*Greece - Extended
  966. variant*gr*nodeadkeys*Greece - Eliminate dead keys
  967. variant*gr*simple*Greece - Simple
  968. variant*gr*polytonic*Greece - Polytonic
  969. layout*it*Italy
  970. variant*it**Italy
  971. variant*it*nodeadkeys*Italy - Eliminate dead keys
  972. variant*it*mac*Italy - Macintosh
  973. variant*it*geo*Italy - Georgian
  974. layout*de*Germany
  975. variant*de**Germany
  976. variant*de*dvorak*Germany - Dvorak
  977. variant*de*sundeadkeys*Germany - Sun dead keys
  978. variant*de*deadgraveacute*Germany - Dead grave acute
  979. variant*de*ro*Germany - Romanian keyboard with German letters
  980. variant*de*neo*Germany - Neo 2
  981. variant*de*deadacute*Germany - Dead acute
  982. variant*de*ro_nodeadkeys*Germany - Romanian keyboard with German letters, eliminate dead keys
  983. variant*de*mac_nodeadkeys*Germany - Macintosh, eliminate dead keys
  984. variant*de*nodeadkeys*Germany - Eliminate dead keys
  985. variant*de*dsb*Germany - Lower Sorbian
  986. variant*de*qwerty*Germany - qwerty
  987. variant*de*dsb_qwertz*Germany - Lower Sorbian (qwertz)
  988. variant*de*mac*Germany - Macintosh
  989. layout*bt*Bhutan
  990. variant*bt**Bhutan
  991. layout*be*Belgium
  992. variant*be**Belgium
  993. variant*be*oss_latin9*Belgium - Alternative, latin-9 only
  994. variant*be*sundeadkeys*Belgium - Sun dead keys
  995. variant*be*nodeadkeys*Belgium - Eliminate dead keys
  996. variant*be*wang*Belgium - Wang model 724 azerty
  997. variant*be*iso-alternate*Belgium - ISO Alternate
  998. variant*be*oss*Belgium - Alternative
  999. variant*be*oss_sundeadkeys*Belgium - Alternative, Sun dead keys
  1000. layout*brai*Braille
  1001. variant*brai**Braille
  1002. variant*brai*left_hand*Braille - Left hand
  1003. variant*brai*right_hand*Braille - Right hand
  1004. layout*uz*Uzbekistan
  1005. variant*uz**Uzbekistan
  1006. variant*uz*crh_alt*Uzbekistan - Crimean Tatar (Turkish Alt-Q)
  1007. variant*uz*latin*Uzbekistan - Latin
  1008. variant*uz*crh*Uzbekistan - Crimean Tatar (Turkish Q)
  1009. variant*uz*crh_f*Uzbekistan - Crimean Tatar (Turkish F)
  1010. layout*us*USA
  1011. variant*us**USA
  1012. variant*us*dvorak*USA - Dvorak
  1013. variant*us*alt-intl*USA - Alternative international (former us_intl)
  1014. variant*us*dvp*USA - Programmer Dvorak
  1015. variant*us*colemak*USA - Colemak
  1016. variant*us*dvorak-classic*USA - Classic Dvorak
  1017. variant*us*dvorak-intl*USA - Dvorak international
  1018. variant*us*euro*USA - With EuroSign on 5
  1019. variant*us*olpc2*USA - Group toggle on multiply/divide key
  1020. variant*us*altgr-intl*USA - International (AltGr dead keys)
  1021. variant*us*rus*USA - Russian phonetic
  1022. variant*us*intl*USA - International (with dead keys)
  1023. variant*us*dvorak-l*USA - Left handed Dvorak
  1024. variant*us*dvorak-r*USA - Right handed Dvorak
  1025. variant*us*mac*USA - Macintosh
  1026. variant*us*chr*USA - Cherokee
  1027. layout*cz*Czechia
  1028. variant*cz**Czechia
  1029. variant*cz*qwerty*Czechia - qwerty
  1030. variant*cz*ucw*Czechia - UCW layout (accented letters only)
  1031. variant*cz*qwerty_bksl*Czechia - qwerty, extended Backslash
  1032. variant*cz*bksl*Czechia - With <\|> key
  1033. layout*mm*Myanmar
  1034. variant*mm**Myanmar
  1035. layout*fr*France
  1036. variant*fr**France
  1037. variant*fr*dvorak*France - Dvorak
  1038. variant*fr*oss_latin9*France - Alternative, latin-9 only
  1039. variant*fr*sundeadkeys*France - Sun dead keys
  1040. variant*fr*oss_nodeadkeys*France - Alternative, eliminate dead keys
  1041. variant*fr*bepo*France - Bepo, ergonomic, Dvorak way
  1042. variant*fr*latin9_nodeadkeys*France - (Legacy) Alternative, eliminate dead keys
  1043. variant*fr*geo*France - Georgian AZERTY Tskapo
  1044. variant*fr*bepo_latin9*France - Bepo, ergonomic, Dvorak way, latin-9 only
  1045. variant*fr*nodeadkeys*France - Eliminate dead keys
  1046. variant*fr*latin9*France - (Legacy) Alternative
  1047. variant*fr*latin9_sundeadkeys*France - (Legacy) Alternative, Sun dead keys
  1048. variant*fr*bre*France - Breton
  1049. variant*fr*oss*France - Alternative
  1050. variant*fr*oci*France - Occitan
  1051. variant*fr*oss_sundeadkeys*France - Alternative, Sun dead keys
  1052. variant*fr*mac*France - Macintosh
  1053. layout*ba*Bosnia and Herzegovina
  1054. variant*ba**Bosnia and Herzegovina
  1055. variant*ba*unicode*Bosnia and Herzegovina - Use Bosnian digraphs
  1056. variant*ba*us*Bosnia and Herzegovina - US keyboard with Bosnian letters
  1057. variant*ba*unicodeus*Bosnia and Herzegovina - US keyboard with Bosnian digraphs
  1058. variant*ba*alternatequotes*Bosnia and Herzegovina - Use guillemets for quotes
  1059. layout*ge*Georgia
  1060. variant*ge**Georgia
  1061. variant*ge*ru*Georgia - Russian
  1062. variant*ge*mess*Georgia - MESS
  1063. variant*ge*ergonomic*Georgia - Ergonomic
  1064. variant*ge*os*Georgia - Ossetian
  1065. layout*kh*Cambodia
  1066. variant*kh**Cambodia
  1067. layout*af*Afghanistan
  1068. variant*af**Afghanistan
  1069. variant*af*olpc-ps*Afghanistan - OLPC Pashto
  1070. variant*af*ps*Afghanistan - Pashto
  1071. variant*af*olpc-uz*Afghanistan - OLPC Southern Uzbek
  1072. variant*af*uz*Afghanistan - Southern Uzbek
  1073. variant*af*olpc-fa*Afghanistan - OLPC Dari
  1074. layout*dk*Denmark
  1075. variant*dk**Denmark
  1076. variant*dk*mac_nodeadkeys*Denmark - Macintosh, eliminate dead keys
  1077. variant*dk*dvorak*Denmark - Dvorak
  1078. variant*dk*nodeadkeys*Denmark - Eliminate dead keys
  1079. variant*dk*mac*Denmark - Macintosh
  1080. layout*sn*Senegal
  1081. variant*sn**Senegal
  1082. layout*ad*Andorra
  1083. variant*ad**Andorra
  1084. layout*al*Albania
  1085. variant*al**Albania
  1086. '
  1087. # kbdnames='model*logicdp*Logitech Cordless Desktop Pro
  1088. # model*omnikey101*Northgate OmniKey 101
  1089. # ...
  1090. # layout*el*Greek
  1091. # ...
  1092. # variant*it*nodeadkeys*Eliminate dead keys'
  1093.  
  1094. ## CODESETS ##
  1095.  
  1096. codesets='Arabic*. Arabic
  1097. Armenian*# Armenian
  1098. CyrKoi*# Cyrillic - KOI8-R and KOI8-U
  1099. CyrAsia*# Cyrillic - non-Slavic languages
  1100. CyrSlav*# Cyrillic - Slavic languages (also Bosnian and Serbian Latin)
  1101. Ethiopian*. Ethiopic
  1102. Georgian*# Georgian
  1103. Greek*# Greek
  1104. Hebrew*# Hebrew
  1105. Lao*# Lao
  1106. Lat15*# Latin1 and Latin5 - western Europe and Turkic languages
  1107. Lat2*# Latin2 - central Europe and Romanian
  1108. Lat38*# Latin3 and Latin8 - Chichewa; Esperanto; Irish; Maltese and Welsh
  1109. Lat7*# Latin7 - Lithuanian; Latvian; Maori and Marshallese
  1110. Vietnamese*. Latin - Vietnamese
  1111. Thai*# Thai
  1112. Uni1*. Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic
  1113. Uni2*. Combined - Latin; Slavic Cyrillic; Greek
  1114. Uni3*. Combined - Latin; Slavic and non-Slavic Cyrillic'
  1115.  
  1116. db_capb backup
  1117. CAPB="$RET"
  1118. detect_keyboard=false
  1119. case $CAPB in
  1120.     *plugin-detect-keyboard*)
  1121.     detect_keyboard=:
  1122.     ;;
  1123. esac
  1124.  
  1125. # Set default value for a question only if it is not seen by the user and
  1126. # the value is non-empty
  1127. db_default () {
  1128.     if \
  1129.     [ -f $CONFIGFILE ] \
  1130.     || { db_fget $1 seen && [ "$RET" = false ]; }
  1131.     then
  1132.     if [ "$2" ]; then
  1133.         db_set $1 "$2"
  1134.     fi
  1135.     fi
  1136. }
  1137.  
  1138. # A high level function to ask questions about the keyboard model,
  1139. # layout and variant
  1140. ask_debconf () {
  1141.     local template priority prefix default_code default_description choices
  1142.  
  1143.     template=$1     # The template to ask
  1144.     priority=$2     # The priority for the question
  1145.     prefix=$3       # The prefix for $kbdnames
  1146.     default_code=$4 # The default choice (optional)
  1147.     choices=`echo "$kbdnames" | grep "^$prefix\*" | 
  1148.         sed -e "s/^$prefix\*[^\*]*\*//" -e 's/,/\\\\,/g' | LC_ALL=C sort |
  1149.         sed -e 's/$/,/'`
  1150.     choices=`echo $choices | sed 's/, *$//'`
  1151.  
  1152.     db_subst $template CHOICES "$choices"
  1153.     default_description=`echo "$kbdnames" |  
  1154.         grep "^$prefix\*${default_code}\*" |
  1155.         sed -e "s/^$prefix\*${default_code}\*//"`
  1156.     if [ -z "$default_description" ]; then
  1157.     # For XkbVariant the empty string is usualy a sensible default
  1158.     default_description=`echo "$kbdnames" |  
  1159.             grep "^$prefix\*\*" |
  1160.             sed -e "s/^$prefix\*\*//"`
  1161.     fi
  1162.     if [ -n "$default_description" ]; then
  1163.     db_default $template "$default_description"
  1164.     elif [ -n "$default_code" ]; then
  1165.     # A default was requested, but we couldn't resolve it to a
  1166.     # description, so we'd better ask.
  1167.     priority=critical
  1168.     fi
  1169.  
  1170.     db_input $priority $template || true
  1171.     db_go || return 255
  1172.     db_get $template
  1173.     RET=`echo "$kbdnames" | grep "^$prefix\*[^\*]*\*" |
  1174.              sed 's/  */ /g' |
  1175.              grep "\*$RET\$" |
  1176.              sed -e "s/^$prefix\*\([^\*]*\)\*.*/\1/" `
  1177.     return 0
  1178. }
  1179.  
  1180. # The guess arch code is taken from "console-data.conf"
  1181. # (translated from Perl to shell)
  1182.  
  1183. # SUBARCH    KEYMAP SET    DETECTION
  1184. # m68k/atari    atari        "Model: Atari"
  1185. # m68k/amiga    amiga        "Model: Amiga"
  1186. # m68k/mac    mac        "Model: Macintosh"
  1187. # m68k/mvme    pc        "Model: Motorola"
  1188. # m68k/bvme    pc        "Model: BVME[46]000"
  1189. # m68k/{sun,apollo,next,q40,hp300} Not supported by Debian
  1190.  
  1191. # ppc/apus    amiga        "machine: Amiga"
  1192. # ppc/chrp    pc,mac        "machine: CHRP"
  1193. # ppc/pmac    mac        "machine: PowerMac|[Pp]ower[Bb]ook*|Power|iMac*|PowerMac1*"
  1194. # ppc/prep    pc        "machine: PReP"
  1195. # ppc/ps3    pc        "platform: PS3"
  1196. # ppc/cell    pc        "platform: Cell"
  1197. # ppc/{bbox,mbx,ppc64,82xx,8xx} Not yet supported by Debian
  1198.  
  1199. # arm/*        pc        (refered to as 'arm' only)
  1200.  
  1201. guess_arch () {
  1202.     local arch subarch line
  1203.  
  1204.     if which archdetect >/dev/null; then
  1205.     archdetect
  1206.     return 0
  1207.     fi
  1208.  
  1209.     arch=`dpkg --print-architecture`
  1210.     
  1211.     if [ "$arch" = 'powerpc' -o "$arch" = 'm68k' ]; then
  1212.     if [ "$arch" = powerpc ]; then
  1213.         line=`sed -n 's/^platform.*: *//p' /proc/cpuinfo`
  1214.         if [ "$line" = PS3 ] || [ "$line" = Cell ]; then
  1215.         subarch=`echo $line|tr A-Z a-z`
  1216.         else
  1217.         line=`sed -n 's/^machine.*: *//p' /proc/cpuinfo`
  1218.         if [ "$line" = '' ]; then
  1219.             echo unknown
  1220.             return 0
  1221.         fi
  1222.         subarch=`echo $line|tr A-Z a-z`
  1223.         fi
  1224.     elif [ "$arch" = m68k ]; then
  1225.         line=`sed -n 's/^Model.*: *//p' /proc/hardware`
  1226.         if [ "$line" = '' ]; then
  1227.         echo unknown
  1228.         return 0
  1229.         fi
  1230.         subarch=`echo $line|tr A-Z a-z`
  1231.     fi
  1232.     case "$subarch" in
  1233.         *amiga*)
  1234.         subarch=amiga
  1235.         ;;
  1236.         *chrp*)
  1237.         subarch=chrp
  1238.         ;;
  1239.         *prep*)
  1240.         subarch=prep
  1241.         ;;
  1242.         *macintosh*|*powermac*|*powerbook*|*power*|*imac*|*powermac1*)
  1243.         subarch=mac
  1244.         ;;
  1245.         *atari*)
  1246.         subarch=atari
  1247.         ;;
  1248.         *motorola*)
  1249.         subarch=mvme
  1250.         ;;
  1251.         *bvme*)
  1252.         subarch=bvme
  1253.         ;;
  1254.         *)
  1255.         subarch=`echo $subarch|sed  's/^\s*//'`
  1256.         ;;
  1257.     esac
  1258.     arch="$arch/$subarch"
  1259.     fi
  1260.     echo $arch
  1261.     return 0
  1262. }
  1263.  
  1264. available_fontfaces () {
  1265.     echo "$fontsets" | LC_ALL=C sort | \
  1266.     grep "^$codeset-" | \
  1267.     sed -e "s/^$codeset-//" \
  1268.         -e 's/[0-9][0-9]*x[0-9][0-9]*$//' \
  1269.         -e 's/[0-9]*$//' | \
  1270.     uniq
  1271. }
  1272.  
  1273. available_fontsizes () {
  1274.     echo "$fontsets" | LC_ALL=C sort | \
  1275.     grep "^$codeset-$fontface[0-9]" | \
  1276.     sed -e "s/^$codeset-$fontface//" | \
  1277.     uniq
  1278. }
  1279.  
  1280. decode_codeset () {
  1281.     pattern="^$(echo "$*" | sed 's/[^ #()0-9;A-Za-z-]/\\&/g')\\*"
  1282.     echo "$codesets" | \
  1283.     grep "$pattern" | \
  1284.     sed 's/.*[*]//'
  1285. }
  1286.  
  1287. encode_codeset () {
  1288.     pattern="\\*$(echo "$*" | sed 's/[^ #()0-9;A-Za-z-]/\\&/g')\$"
  1289.     echo "$codesets" | \
  1290.     grep "$pattern" | \
  1291.     sed 's/[*].*//'
  1292. }
  1293.  
  1294. if which locale >/dev/null; then
  1295.     eval `locale`
  1296. fi
  1297.  
  1298. if [ "$LC_CTYPE"  -a "$LC_CTYPE" != C ]; then
  1299.     locale=$LC_CTYPE
  1300. elif db_get debian-installer/locale && [ "$RET" ]; then
  1301.     locale="$RET"
  1302. else
  1303.     locale=C
  1304. fi
  1305.  
  1306. case "$locale" in
  1307.     *KOI8*|*koi8*)
  1308.     default_codeset=CyrKoi
  1309.     codeset_priority=low
  1310.     ;;
  1311.     aa_*)
  1312.     default_codeset=Lat15
  1313.     codeset_priority=low
  1314.     ;;
  1315.     af_*)
  1316.     default_codeset=Lat15
  1317.     codeset_priority=low
  1318.     ;;
  1319.     am_*)
  1320.     default_codeset=Ethiopic
  1321.     codeset_priority=low
  1322.     ;;
  1323.     an_*)
  1324.     default_codeset=Lat15
  1325.     codeset_priority=low
  1326.     ;;
  1327.     ar_*)
  1328.     default_codeset=Arabic
  1329.     codeset_priority=low
  1330.     ;;
  1331.     ast_*)
  1332.     default_codeset=Lat15
  1333.     codeset_priority=low
  1334.     ;;
  1335.     az_*)
  1336.     default_codeset=Uni3
  1337.     codeset_priority=low
  1338.     ;;
  1339.     be_*)
  1340.     default_codeset=CyrSlav
  1341.     codeset_priority=low
  1342.     ;;
  1343.     bg_*)
  1344.     default_codeset=CyrSlav
  1345.     codeset_priority=low
  1346.     ;;
  1347.     bn_*)
  1348.     default_codeset=unsupported
  1349.     codeset_priority=low
  1350.     ;;
  1351.     br_*)
  1352.     default_codeset=Lat15
  1353.     codeset_priority=low
  1354.     ;;
  1355.     bs_*)
  1356.     default_codeset=Uni3
  1357.     codeset_priority=low
  1358.     ;;
  1359.     byn_*)
  1360.     default_codeset=Ethiopian
  1361.     codeset_priority=low
  1362.     ;;
  1363.     ca_*)
  1364.     default_codeset=Lat15
  1365.     codeset_priority=low
  1366.     ;;
  1367.     cs_*)
  1368.     default_codeset=Lat2
  1369.     codeset_priority=low
  1370.     ;;
  1371.     cy_*)
  1372.     default_codeset=Lat38
  1373.     codeset_priority=low
  1374.     ;;
  1375.     da_*)
  1376.     default_codeset=Lat15
  1377.     codeset_priority=low
  1378.     ;;
  1379.     de_*)
  1380.     default_codeset=Lat15
  1381.     codeset_priority=low
  1382.     ;;
  1383.     el_*)
  1384.     default_codeset=Greek
  1385.     codeset_priority=low
  1386.     ;;
  1387.     en_*)
  1388.     default_codeset=Lat15
  1389.     codeset_priority=low
  1390.     ;;
  1391.     eo|eo.*|eo_*|eo\@*)
  1392.     default_codeset=Lat38
  1393.     codeset_priority=low
  1394.     ;;
  1395.     es_*)
  1396.     default_codeset=Lat15
  1397.     codeset_priority=low
  1398.     ;;
  1399.     et_*)
  1400.     default_codeset=Lat15
  1401.     codeset_priority=low
  1402.     ;;
  1403.     eu_*)
  1404.     default_codeset=Lat15
  1405.     codeset_priority=low
  1406.     ;;
  1407.     fa_*)
  1408.     default_codeset=Arabic
  1409.     codeset_priority=low
  1410.     ;;
  1411.     fi_*)
  1412.     default_codeset=Lat15
  1413.     codeset_priority=low
  1414.     ;;
  1415.     fo_*)
  1416.     default_codeset=Lat15
  1417.     codeset_priority=low
  1418.     ;;
  1419.     fr_*)
  1420.     default_codeset=Lat15
  1421.     codeset_priority=low
  1422.     ;;
  1423.     ga_*)
  1424.     default_codeset=Lat38
  1425.     codeset_priority=low
  1426.     ;;
  1427.     gd_*)
  1428.     default_codeset=Lat15
  1429.     codeset_priority=low
  1430.     ;;
  1431.     gez_*)
  1432.     default_codeset=Ethiopian
  1433.     codeset_priority=low
  1434.     ;;
  1435.     gl_*)
  1436.     default_codeset=Lat15
  1437.     codeset_priority=low
  1438.     ;;
  1439.     gu_*)
  1440.     default_codeset=unsupported
  1441.     codeset_priority=low
  1442.     ;;
  1443.     gv_*)
  1444.     default_codeset=Lat15
  1445.     codeset_priority=low
  1446.     ;;
  1447.     he_*)
  1448.     default_codeset=Hebrew
  1449.     codeset_priority=low
  1450.     ;;
  1451.     hi_*)
  1452.     default_codeset=unsupported
  1453.     codeset_priority=low
  1454.     ;;
  1455.     hr_*)
  1456.     default_codeset=Lat2
  1457.     codeset_priority=low
  1458.     ;;
  1459.     hu_*)
  1460.     default_codeset=Lat2
  1461.     codeset_priority=low
  1462.     ;;
  1463.     hy_*)
  1464.     default_codeset=Armenian
  1465.     codeset_priority=low
  1466.     ;;
  1467.     id_*)
  1468.     default_codeset=Lat15
  1469.     codeset_priority=low
  1470.     ;;
  1471.     is_*)
  1472.     default_codeset=Lat15
  1473.     codeset_priority=low
  1474.     ;;
  1475.     it_*)
  1476.     default_codeset=Lat15
  1477.     codeset_priority=low
  1478.     ;;
  1479.     iw_*)
  1480.     default_codeset=Hebrew
  1481.     codeset_priority=low
  1482.     ;;
  1483.     ja_*)
  1484.     default_codeset=unsupported
  1485.     codeset_priority=low
  1486.     ;;
  1487.     ka_*)
  1488.     default_codeset=Georgian
  1489.     codeset_priority=low
  1490.     ;;
  1491.     kl_*)
  1492.     default_codeset=Lat15
  1493.     codeset_priority=low
  1494.     ;;
  1495.     kn_*)
  1496.     default_codeset=unsupported
  1497.     codeset_priority=low
  1498.     ;;
  1499.     ko_*)
  1500.     default_codeset=unsupported
  1501.     codeset_priority=low
  1502.     ;;
  1503.     kw_*)
  1504.     default_codeset=Lat15
  1505.     codeset_priority=low
  1506.     ;;
  1507.     lg_*)
  1508.     default_codeset=Lat15 # TODO: This must be ISO-8859-10 (Latin6)
  1509.     codeset_priority=low
  1510.     ;;
  1511.     lo_*)
  1512.     default_codeset=Lao
  1513.     codeset_priority=low
  1514.     ;;
  1515.     lt_*)
  1516.     default_codeset=Lat7
  1517.     codeset_priority=low
  1518.     ;;
  1519.     lv_*)
  1520.     default_codeset=Lat7
  1521.     codeset_priority=low
  1522.     ;;
  1523.     mi_*)
  1524.     default_codeset=Lat7
  1525.     codeset_priority=low
  1526.     ;;
  1527.     mk_*)
  1528.     default_codeset=CyrSlav
  1529.     codeset_priority=low
  1530.     ;;
  1531.     ml_*)
  1532.     default_codeset=unsupported
  1533.     codeset_priority=low
  1534.     ;;
  1535.     mn_*)
  1536.     default_codeset=CyrAsia
  1537.     codeset_priority=low
  1538.     ;;
  1539.     mr_*)
  1540.     default_codeset=unsupported
  1541.     codeset_priority=low
  1542.     ;;
  1543.     ms_*)
  1544.     default_codeset=Lat15 # TODO: Is this correct? (Malay language)
  1545.     codeset_priority=low
  1546.     ;;
  1547.     mt_*)
  1548.     default_codeset=Lat38
  1549.     codeset_priority=low
  1550.     ;;
  1551.     nb_*)
  1552.     default_codeset=Lat15
  1553.     codeset_priority=low
  1554.     ;;
  1555.     ne_*)
  1556.     default_codeset=unsupported
  1557.     codeset_priority=low
  1558.     ;;
  1559.     nl_*)
  1560.     default_codeset=Lat15
  1561.     codeset_priority=low
  1562.     ;;
  1563.     nn_*)
  1564.     default_codeset=Lat15
  1565.     codeset_priority=low
  1566.     ;;
  1567.     oc_*)
  1568.     default_codeset=Lat15
  1569.     codeset_priority=low
  1570.     ;;
  1571.     om_*)
  1572.     default_codeset=Lat15
  1573.     codeset_priority=low
  1574.     ;;
  1575.     pa_*)
  1576.     default_codeset=unsupported
  1577.     codeset_priority=low
  1578.     ;;
  1579.     pl_*)
  1580.     default_codeset=Lat2
  1581.     codeset_priority=low
  1582.     ;;
  1583.     pt_*)
  1584.     default_codeset=Lat15
  1585.     codeset_priority=low
  1586.     ;;
  1587.     ro_*)
  1588.     default_codeset=Lat2
  1589.     codeset_priority=low
  1590.     ;;
  1591.     ru_*)
  1592.     default_codeset=CyrSlav
  1593.     codeset_priority=low
  1594.     ;;
  1595.     se_*)
  1596.     default_codeset=Uni1
  1597.     codeset_priority=low
  1598.     ;;
  1599.     sid_*)
  1600.     default_codeset=Lat15 # TODO: Is this correct? (Sidama language)
  1601.     codeset_priority=low
  1602.     ;;
  1603.     sk_*)
  1604.     default_codeset=Lat2
  1605.     codeset_priority=low
  1606.     ;;
  1607.     sl_*)
  1608.     default_codeset=Lat2
  1609.     codeset_priority=low
  1610.     ;;
  1611.     so_*)
  1612.     default_codeset=Lat15
  1613.     codeset_priority=low
  1614.     ;;
  1615.     sq_*)
  1616.     default_codeset=Lat15
  1617.     codeset_priority=low
  1618.     ;;
  1619.     sr_*)
  1620.     default_codeset=CyrSlav
  1621.     codeset_priority=low
  1622.     ;;
  1623.     st_*)
  1624.     default_codeset=Lat15 # TODO: Is this correct? (Sotho language)
  1625.     codeset_priority=low
  1626.     ;;
  1627.     sv_*)
  1628.     default_codeset=Lat15
  1629.     codeset_priority=low
  1630.     ;;
  1631.     ta_*)
  1632.     default_codeset=unsupported
  1633.     codeset_priority=low
  1634.     ;;
  1635.     te_*)
  1636.     default_codeset=unsupported
  1637.     codeset_priority=low
  1638.     ;;
  1639.     tg_*)
  1640.     default_codeset=CyrAsia
  1641.     codeset_priority=low
  1642.     ;;
  1643.     th_*)
  1644.     default_codeset=Thai
  1645.     codeset_priority=low
  1646.     ;;
  1647.     ti_*)
  1648.     default_codeset=Ethiopian
  1649.     codeset_priority=low
  1650.     ;;
  1651.     tig_*)
  1652.     default_codeset=Ethiopian
  1653.     codeset_priority=low
  1654.     ;;
  1655.     tl_*)
  1656.     default_codeset=Lat15
  1657.     codeset_priority=low
  1658.     ;;
  1659.     tr_*)
  1660.     default_codeset=Lat15
  1661.     codeset_priority=low
  1662.     ;;
  1663.     tt_*)
  1664.     default_codeset=Lat15 # TODO: Is this correct? (Tatar language)
  1665.     codeset_priority=low
  1666.     ;;
  1667.     uk_*)
  1668.     default_codeset=CyrSlav
  1669.     codeset_priority=low
  1670.     ;;
  1671.     ur_*)
  1672.     default_codeset=Arabic
  1673.     codeset_priority=low
  1674.     ;;
  1675.     uz_*)
  1676.     default_codeset=Lat15 # TODO: Is this correct? (Uzbek language)
  1677.     codeset_priority=low
  1678.     ;;
  1679.     uz_*\@cyrillic)
  1680.     default_codeset=CyrAsia
  1681.     codeset_priority=low
  1682.     ;;
  1683.     vi_*)
  1684.     default_codeset=Vietnamese
  1685.     codeset_priority=low
  1686.     ;;
  1687.     wa_*)
  1688.     default_codeset=Lat15
  1689.     codeset_priority=low
  1690.     ;;
  1691.     xh_*)
  1692.     default_codeset=Lat15
  1693.     codeset_priority=low
  1694.     ;;
  1695.     yi_*)
  1696.     default_codeset=Hebrew
  1697.     codeset_priority=low
  1698.     ;;
  1699.     zh_*)
  1700.     default_codeset=unsupported
  1701.     codeset_priority=low
  1702.     ;;
  1703.     zu_*)
  1704.     default_codeset=Lat15
  1705.     codeset_priority=low
  1706.     ;;
  1707.     *)
  1708.     default_codeset=Uni1
  1709.     codeset_priority=high
  1710.     ;;
  1711. esac
  1712. if [ "$default_codeset" = unsupported ]; then
  1713.     default_codeset=Uni1
  1714. fi
  1715.  
  1716. default_codeset="`decode_codeset $default_codeset`"
  1717. if [ -z "$default_codeset" ]; then
  1718.     default_codeset=Uni1
  1719.     codeset_priority=high
  1720. fi
  1721.  
  1722. default_layout=''
  1723. default_variant=''
  1724. if [ -e /etc/console/boottime.kmap.gz ]; then
  1725.     # Upgrade from pre-console-setup; we need to ask if autodetection fails.
  1726.     layout_priority=critical
  1727. else
  1728.     # Probably a fresh installation. If the installation is being automated,
  1729.     # then in the worst case selecting a "us" layout won't break the system,
  1730.     # so drop the priority a little bit.
  1731.     layout_priority=high
  1732. fi
  1733. case "$locale" in
  1734.     # Keyboards for countries
  1735.     *_AL*)
  1736.     default_layout=al  # Albania
  1737.     ;;
  1738.     *_AZ*)
  1739.     default_layout=az  # Azerbaijan
  1740.     ;;
  1741.     *_BD*)
  1742.     default_layout=bd  # Bangladesh
  1743.     ;;
  1744.     *_BE*)
  1745.     default_layout=be  # Belgium
  1746.     ;;
  1747.     *_BG*)
  1748.     default_layout=bg  # Bulgaria
  1749.     layout_priority=critical
  1750.     ;;
  1751.     *_BR*)
  1752.     default_layout=br  # Brazil
  1753.     ;;
  1754.     *_BY*)
  1755.     default_layout=by  # Belarus
  1756.     ;;
  1757.     fr_CA*)
  1758.     default_layout=ca  # Canada
  1759.     ;;
  1760.     *_CA*)
  1761.     default_layout=us  # U.S. English
  1762.     ;;
  1763.     fr_CH*)
  1764.     default_layout=ch  # Switzerland
  1765.     default_variant=fr # French
  1766.     ;;
  1767.     *_CH*)
  1768.     default_layout=ch  # Switzerland
  1769.     layout_priority=critical
  1770.     ;;
  1771.     *_CZ*)
  1772.     default_layout=cz  # Czechia
  1773.     layout_priority=critical
  1774.     ;;
  1775.     *_DK*)
  1776.     default_layout=dk  # Denmark
  1777.     ;;
  1778.     *_EE*)
  1779.     default_layout=ee  # Estonia
  1780.     ;;
  1781.     ast_ES*)
  1782.     default_layout=es  # Spain
  1783.     default_variant=ast # Asturian
  1784.     ;;
  1785.     ca_ES*)
  1786.     default_layout=es  # Spain
  1787.     default_variant=cat # Catalan
  1788.     ;;
  1789.     *_ES*)
  1790.     default_layout=es  # Spain
  1791.     ;;
  1792.     se_FI*)
  1793.     default_layout=fi  # Finland
  1794.     default_variant=smi # Northern Saami
  1795.     ;;
  1796.     *_FI*)
  1797.     default_layout=fi  # Finland
  1798.     default_variant=fi # Finland
  1799.     ;;
  1800.     *_GB*)
  1801.     default_layout=gb  # United Kingdom
  1802.     ;;
  1803.     *_HU*)
  1804.     default_layout=hu  # Hungary
  1805.     ;;
  1806.     *_IE*)
  1807.     default_layout=ie  # Ireland
  1808.     ;;
  1809.     *_IL*)
  1810.     default_layout=il  # Israel
  1811.     layout_priority=critical
  1812.     ;;
  1813.     *_IR*)
  1814.     default_layout=ir  # Iran
  1815.     ;;
  1816.     *_IS*)
  1817.     default_layout=is  # Iceland
  1818.     ;;
  1819.     *_IT*)
  1820.     default_layout=it  # Italy
  1821.     ;;
  1822.     *_JP*)
  1823.     default_layout=jp  # Japan
  1824.     ;;
  1825.     *_LT*)
  1826.     default_layout=lt  # Lithuania
  1827.     layout_priority=critical
  1828.     ;;
  1829.     *_LV*)
  1830.     default_layout=lv  # Latvia
  1831.     ;;
  1832.     *_MA*)
  1833.     default_layout=ma  # Morocco
  1834.     ;;
  1835.     *_MK*)
  1836.     default_layout=mk  # Macedonia
  1837.     ;;
  1838. # According to https://launchpad.net/bugs/129982, Dutch users prefer the US
  1839. # keymap.
  1840.     *_NL*)
  1841.     default_layout=us  # Netherlands
  1842.     default_variant=intl # International (with dead keys)
  1843.     ;;
  1844.     *_MN*)
  1845.     default_layout=mn  # Mongolia
  1846.     ;;
  1847.     *_MT*)
  1848.     default_layout=mt  # Malta
  1849.     layout_priority=critical
  1850.     ;;
  1851.     se_NO*)
  1852.     default_layout=no  # Norway
  1853.     default_variant=smi # Northern Saami
  1854.     ;;
  1855.     *_NO*)
  1856.     default_layout=no  # Norway (se_NO is not in this case)
  1857.     ;;
  1858.     *_PL*)
  1859.     default_layout=pl  # Poland
  1860.     ;;
  1861.     *_PT*)
  1862.     default_layout=pt  # Portugal
  1863.     ;;
  1864.     *_RO*)
  1865.     default_layout=ro  # Romania
  1866.     ;;
  1867.     *_RU*)
  1868.     default_layout=ru  # Russia
  1869.     layout_priority=critical
  1870.     ;;
  1871.     se_SE*)
  1872.     default_layout=se  # Sweden
  1873.     default_variant=smi # Northern Saami
  1874.     ;;
  1875.     *_SK*)
  1876.     default_layout=sk  # Slovakia
  1877.     ;;
  1878.     *_SI*)
  1879.     default_layout=si  # Slovenia
  1880.     ;;
  1881.     *_TJ*)
  1882.     default_layout=tj  # Tajikistan
  1883.     ;;
  1884.     *_TH*)
  1885.     default_layout=th  # Thailand
  1886.     layout_priority=critical
  1887.     ;;
  1888.     ku_TR*)
  1889.     default_layout=tr  # Turkish
  1890.     default_variant=ku # Kurdish, Latin Q
  1891.     ;;
  1892.     *_TR*)
  1893.     default_layout=tr  # Turkish
  1894.     layout_priority=critical
  1895.     ;;
  1896.     *_UA*)
  1897.     default_layout=ua  # Ukraine
  1898.     ;;
  1899.     en_US*)
  1900.     default_layout=us  # U.S. English
  1901.     ;;
  1902. # According to https://launchpad.net/bugs/191451, most keyboards in Vietnam
  1903. # are in fact US keyboards.
  1904.     *_VN*)
  1905.     default_layout=us  # Vietnam
  1906.     ;;
  1907.     # Keyboards for specific languages and international keyboards:
  1908.     # TODO: Is the following list correct?
  1909.     *_AR*|*_BO*|*_CL*|*_CO*|*_CR*|*_DO*|*_EC*|*_GT*|*_HN*|*_MX*|*_NI*|*_PA*|*_PE*|es_PR*|*_PY*|*_SV*|es_US*|*_UY*|*_VE*)
  1910.     default_layout=latam # Latin American
  1911.     ;;
  1912.     ar_*)
  1913.     default_layout=ara # Arabic
  1914.     ;;
  1915.     bs_*)
  1916.     default_layout=ba  # Bosnia and Herzegovina
  1917.     ;;
  1918.     de_*)
  1919.     default_layout=de  # Germany
  1920.     ;;
  1921.     el_*)
  1922.     default_layout=gr  # Greece
  1923.     ;;
  1924.     eo|eo.*|eo_*|eo\@*)
  1925.     default_layout=epo  # Esperanto
  1926.     ;;
  1927.     fr_*)
  1928.     default_layout=fr  # France
  1929.     default_variant=oss # Alternative
  1930.     layout_priority=critical
  1931.     ;;
  1932.     gu_*)
  1933.     default_layout=in  # India
  1934.     default_variant=guj # Gujarati
  1935.     ;;
  1936.     hi_*)
  1937.     default_layout=in  # India
  1938.     default_variant=deva # Devanagari
  1939.     ;;
  1940.     hr_*)
  1941.     default_layout=hr  # Croatia
  1942.     ;;
  1943.     hy_*)
  1944.     default_layout=am  # Armenia
  1945.     ;;
  1946.     ka_*)
  1947.     default_layout=ge  # Georgia
  1948.     layout_priority=critical
  1949.     ;;
  1950.     kn_*)
  1951.     default_layout=in  # India
  1952.     default_variant=kan # Kannada
  1953.     ;;
  1954.     lo_*)
  1955.     default_layout=la  # Laos
  1956.     ;;
  1957.     ml_*)
  1958.     default_layout=in  # India
  1959.     default_variant=mal # Malayalam
  1960.     ;;
  1961.     pa_*)
  1962.     default_layout=in  # India
  1963.     default_variant=guru # Gurmukhi
  1964.     ;;
  1965.     sr_ME*)
  1966.     default_layout=me  # Montenegro
  1967.     layout_priority=critical
  1968.     ;;
  1969.     sr_*)
  1970.     default_layout=rs  # Serbia
  1971.     layout_priority=critical
  1972.     ;;
  1973.     sv_*)
  1974.     default_layout=se  # Sweden
  1975.     default_variant=basic
  1976.     ;;
  1977.     ta_*)
  1978.     default_layout=in  # India
  1979.     default_variant=tam # Tamil
  1980.     ;;
  1981.     te_*)
  1982.     default_layout=in  # India
  1983.     default_variant=tel # Telugu
  1984.     ;;
  1985.     zh_CN)
  1986.     default_layout=cn  # China
  1987.     ;;
  1988.     # Fallback
  1989.     *)
  1990.     default_layout=us
  1991.     ;;
  1992. esac
  1993.  
  1994. if \
  1995.     [ -d /lib/debian-installer ] \
  1996.     && db_get debian-installer/charmap \
  1997.     && [ "$RET" ]
  1998. then
  1999.     default_charmap="$RET"
  2000. elif [ "$locale" = C ]; then
  2001.     default_charmap=UTF-8
  2002.     charmap_priority=high
  2003. elif which locale >/dev/null; then
  2004.     default_charmap=`locale charmap`
  2005. else
  2006.     default_charmap=unknown
  2007. fi
  2008. if echo "$charmaps" | grep "$default_charmap" >/dev/null; then
  2009.     charmap_priority=low
  2010. else
  2011.     default_charmap=UTF-8
  2012.     charmap_priority=high
  2013. fi
  2014.  
  2015. arch=`guess_arch`
  2016.  
  2017. case "$arch" in
  2018.     alpha*)
  2019.     default_model=pc105
  2020.     model_priority=medium
  2021.     ;;
  2022.     amd64*)
  2023.     default_model=pc105
  2024.     model_priority=medium
  2025.     ;;
  2026.     arm*)
  2027.     default_model=pc105
  2028.     model_priority=medium
  2029.     ;;
  2030.     i386*)
  2031.     default_model=pc105
  2032.     model_priority=medium
  2033.     ;;
  2034.     ia64*)
  2035.     default_model=pc105
  2036.     model_priority=medium
  2037.     ;;
  2038.     m68k/amiga)
  2039.     default_model=amiga
  2040.     model_priority=medium
  2041.     ;;
  2042.     m68k/atari)
  2043.     default_model=ataritt
  2044.     model_priority=medium
  2045.     ;;
  2046.     m68k/mac)
  2047.     default_model=macintosh_old
  2048.     model_priority=medium
  2049.     ;;
  2050.     m68k/sun*)
  2051.     default_model=sun4 # also sun5, pc105
  2052.     model_priority=critical
  2053.     ;;
  2054.     m68k/*vme*)
  2055.     default_model=pc105
  2056.     model_priority=medium
  2057.     ;;
  2058.     mips*)
  2059.     default_model=pc105
  2060.     model_priority=medium
  2061.     ;;
  2062.     powerpc/amiga)
  2063.     default_model=amiga
  2064.     model_priority=medium
  2065.     ;;
  2066.     powerpc/apus)
  2067.     default_model=amiga
  2068.     model_priority=medium
  2069.     ;;
  2070.     powerpc/chrp*)
  2071.     default_model=pc105 # also macintosh_old and maybe amiga
  2072.     model_priority=critical
  2073.     ;;
  2074.     powerpc/mac)
  2075.     default_model=pc105
  2076.     model_priority=medium
  2077.     ;;
  2078.     powerpc/pasemi)
  2079.     default_model=pc105
  2080.     model_priority=medium
  2081.     ;;
  2082.     powerpc/powermac*)
  2083.     default_model=pc105
  2084.     model_priority=medium
  2085.     ;;
  2086.     powerpc/prep)
  2087.     default_model=pc105
  2088.     model_priority=medium
  2089.     ;;
  2090.     powerpc/ps3|powerpc/cell)
  2091.     default_model=pc105
  2092.     model_priority=medium
  2093.     ;;
  2094.     sparc*)
  2095.     default_model=pc105 # also sun4, sun5
  2096.     model_priority=critical
  2097.     ;;
  2098.     s390*)
  2099.     default_model=pc105
  2100.     model_priority=medium
  2101.     ;;
  2102.     *)
  2103.     default_model=pc105
  2104.     model_priority=critical
  2105.     ;;
  2106. esac    
  2107.  
  2108. ### READ THE DEFAULTS ##################################################
  2109.  
  2110. XKBMODEL=''
  2111. XKBLAYOUT=''
  2112. XKBVARIANT=''
  2113. XKBOPTIONS=''
  2114.  
  2115. # Use the value of debian-installer/keymap to get better default
  2116. # layout.  Lower the priority of the Debconf question to medium.
  2117. # This guesswork is copied from xserver-xorg.config.
  2118. if db_get debian-installer/keymap && [ "$RET" ]; then
  2119.     di_keymap="${RET##mac-usb-}"
  2120.     di_keymap="${di_keymap%%-latin1}"
  2121.  
  2122.     case "$di_keymap" in
  2123.     be2) XKBLAYOUT="be";;
  2124.     bg) XKBLAYOUT="us,bg";;
  2125.     br) XKBLAYOUT="us"; XKBVARIANT="intl"; XKBMODEL="pc104";;
  2126.     br-abnt2) XKBLAYOUT="br"; XKBVARIANT="abnt2"; XKBMODEL="abnt2";;
  2127.     by) XKBLAYOUT="us,by";;
  2128.     cf) XKBLAYOUT="ca"; XKBVARIANT="fr";;
  2129.     croat) XKBLAYOUT="hr";;
  2130.     cz-lat2) XKBLAYOUT="cz";;
  2131.     de-latin1-nodeadkeys) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  2132.     de) XKBLAYOUT="de";;
  2133.     dvorak) XKBLAYOUT="us"; XKBVARIANT="dvorak"; XKBMODEL="pc104";;
  2134.     dk) XKBLAYOUT="dk";;
  2135.     es) XKBLAYOUT="es";;
  2136.     et) XKBLAYOUT="ee";;
  2137.     'fi') XKBLAYOUT="fi";;
  2138.     fr-latin9) XKBLAYOUT="fr"; XKBVARIANT="latin9";;
  2139.     fr_CH) XKBLAYOUT="ch"; XKBVARIANT="fr";;
  2140.     fr) XKBLAYOUT="fr";;
  2141.     hebrew) XKBLAYOUT="us,il";;
  2142.     hu) XKBLAYOUT="hu";;
  2143.     gb) XKBLAYOUT="gb";;
  2144.     is) XKBLAYOUT="is";;
  2145.     it) XKBLAYOUT="it";;
  2146.     jp106) XKBLAYOUT="jp,jp"; XKBVARIANT=",kana"; XKBMODEL="jp106";;
  2147.     la) XKBLAYOUT="latam";;
  2148.     lt) XKBLAYOUT="lt";; 
  2149.     lv-latin4) XKBLAYOUT="lv";;
  2150.     mac-us-std) XKBLAYOUT="us";;
  2151.     mac-de2-ext) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  2152.     mac-fr2-ext) XKBLAYOUT="fr";;
  2153.     mac-fr3) XKBLAYOUT="fr";;
  2154.     mac-es) XKBLAYOUT="es";;
  2155.     mk) XKBLAYOUT="us,mk";;
  2156.     nl) XKBLAYOUT="nl";;
  2157.     no) XKBLAYOUT="no";;
  2158.     pl) XKBLAYOUT="pl";;
  2159.     pt) XKBLAYOUT="pt";;
  2160.     ro) XKBLAYOUT="ro";;
  2161.     ru) XKBLAYOUT="us,ru";;
  2162.     se) XKBLAYOUT="se";;
  2163.     sg) XKBLAYOUT="ch"; XKBVARIANT="de";;
  2164.     sk-qwerty) XKBLAYOUT="sk"; XKBVARIANT="qwerty";;
  2165.     slovene) XKBLAYOUT="si";;
  2166.     sr-cy) XKBLAYOUT="rs,rs"; XKBVARIANT="latin,basic" ;;
  2167.     trf|trfu) XKBLAYOUT="tr"; XKBVARIANT="f";;
  2168.     trq|trqu) XKBLAYOUT="tr";;
  2169.     ua) XKBLAYOUT="us,ua";;
  2170.     uk) XKBLAYOUT="gb";;
  2171.     us) XKBLAYOUT="us"; XKBMODEL="pc104";;
  2172.     esac
  2173. fi
  2174.  
  2175. # Get defaults from debconf, to allow preseeding.
  2176. if [ -d /lib/debian-installer ] || [ "$OVERRIDE_ALLOW_PRESEEDING" ]; then
  2177.     if db_get console-setup/modelcode && [ "$RET" ]; then
  2178.     default_model="$RET"
  2179.     fi
  2180.     if db_get console-setup/layoutcode && [ "$RET" ]; then
  2181.     default_layout="$RET"
  2182.     if db_fget console-setup/layoutcode seen && [ "$RET" = true ]; then
  2183.         layout_priority=medium
  2184.         db_set console-setup/ask_detect false
  2185.         db_fset console-setup/ask_detect seen true
  2186.     fi
  2187.     fi
  2188.     if db_get console-setup/variantcode && [ "$RET" ]; then
  2189.     default_variant="$RET"
  2190.     fi
  2191.     if db_get console-setup/optionscode && [ "$RET" ]; then
  2192.     XKBOPTIONS="$RET"
  2193.     fi
  2194.     if db_get console-setup/fontsize && [ "$RET" ]; then
  2195.     db_set console-setup/fontsize-text "$RET"
  2196.     db_set console-setup/fontsize-fb "$RET"
  2197.     fi
  2198. fi
  2199.  
  2200. # Get default layout from xorg.conf if available
  2201. if [ -f /etc/X11/xorg.conf ] && which awk >/dev/null; then
  2202.     awk_expr='
  2203. {
  2204.     $0 = tolower($0);
  2205.     sub("#.*","")
  2206.     xkb = "";
  2207. }
  2208.  
  2209. /^[ \t]*section[ \t]+"inputdevice"/,/^[ \t]*endsection/ {
  2210.     if ($1 == "option") {
  2211.     if ($2 == "\"xkbmodel\"") {
  2212.         xkb = "XKBMODEL";
  2213.     } else if ($2 == "\"xkblayout\"") {
  2214.         xkb = "XKBLAYOUT";
  2215.     } else if ($2 == "\"xkbvariant\"") {
  2216.         xkb = "XKBVARIANT";
  2217.     } else if ($2 == "\"xkboptions\"") {
  2218.         xkb = "XKBOPTIONS"; 
  2219.     }
  2220.     $1 = "";
  2221.     $2 = "";
  2222.     }
  2223. }
  2224.  
  2225. xkb != "" && /^[ \t]*\"[^"]+\"[ \t]*$/ {
  2226.     sub("^[ \t]*\"", "");
  2227.     sub("\".*", "");
  2228.     gsub("[ \t]", "");
  2229.     if ($1 !~ /[()]/) {
  2230.     print xkb "=\"" $0 "\"";
  2231.     } else {
  2232.     if (xkb == "XKBLAYOUT" && $1 ~ /^[^()]+\([^()]+\)$/) {
  2233.         split($1, s, /[()]/);
  2234.         print "XKBLAYOUT=" s[1];
  2235.         print "XKBVARIANT=" s[2];
  2236.     }
  2237.     }
  2238. }
  2239. '
  2240.     eval $(awk "$awk_expr" < /etc/X11/xorg.conf)
  2241. fi
  2242.  
  2243. # Load the config file, if it exists.
  2244. if [ -e $CONFIGFILE ]; then
  2245.     . $CONFIGFILE || true
  2246. fi
  2247.  
  2248. if [ "$ACTIVE_CONSOLES" ]; then
  2249.     default_ttys="$ACTIVE_CONSOLES"
  2250. fi
  2251. if [ "$CHARMAP" ]; then
  2252.     default_charmap="$CHARMAP"
  2253. fi
  2254. if [ "$FONTFACE" ]; then
  2255.     default_fontface="$FONTFACE"
  2256. fi
  2257. if [ "$FONTSIZE" ]; then
  2258.     default_fontsize="$FONTSIZE"
  2259. fi
  2260. if [ "$CODESET" ]; then
  2261.     default_codeset="`decode_codeset $CODESET`"
  2262.     if [ -z "$default_codeset" ]; then
  2263.     default_codeset=Uni1
  2264.     codeset_priority=high
  2265.     fi
  2266. fi
  2267. if [ "$XKBMODEL" ] ; then
  2268.     model_priority=medium
  2269.     default_model="$XKBMODEL"
  2270. fi
  2271.  
  2272. XKBLAYOUT=$(echo $XKBLAYOUT | sed 's/ *//g')
  2273. XKBVARIANT=$(echo $XKBVARIANT | sed 's/ *//g')
  2274.  
  2275. if [ "$XKBLAYOUT" ]; then
  2276.     layout_priority=medium
  2277.  
  2278.     migrate_layout () {
  2279.     case "$1" in
  2280.         cs)
  2281.         echo rs
  2282.         ;;
  2283.         *)
  2284.         echo "$1"
  2285.         ;;
  2286.     esac
  2287.     }
  2288.  
  2289.     migrate_variant () {
  2290.     case "$1" in
  2291.         jp)
  2292.         case "$2" in
  2293.             latin)
  2294.             echo 106
  2295.             ;;
  2296.             jp106)
  2297.             echo kana
  2298.             ;;
  2299.             *)
  2300.             echo "$2"
  2301.             ;;
  2302.         esac
  2303.         ;;
  2304.         *)
  2305.         echo "$2"
  2306.         ;;
  2307.     esac
  2308.     }
  2309.  
  2310.     # Migration
  2311.     case "$XKBLAYOUT" in
  2312.     *,*)
  2313.         layout1="${XKBLAYOUT%%,*}"
  2314.         layout2="${XKBLAYOUT#*,}"
  2315.         variant1="${XKBVARIANT%%,*}"
  2316.         variant2="${XKBVARIANT#*,}"
  2317.         XKBLAYOUT="$(migrate_layout "$layout1"),$(migrate_layout "$layout2")"
  2318.         XKBVARIANT="$(migrate_variant "$layout1" "$variant1"),$(migrate_variant "$layout2" "$variant2")"
  2319.         ;;
  2320.     *)
  2321.         XKBLAYOUT="$(migrate_layout "$XKBLAYOUT")"
  2322.         XKBVARIANT="$(migrate_variant "$XKBLAYOUT" "$XKBVARIANT")"
  2323.         ;;
  2324.     esac
  2325.  
  2326.     case "$XKBLAYOUT" in
  2327.     lt,lt)
  2328.         default_layout="${XKBLAYOUT%,*}"
  2329.         default_variant="${XKBVARIANT%,*}"
  2330.         unsupported_layout=no
  2331.         ;;
  2332.     jp,jp|us,jp)
  2333.         # fix on upgrade for #526862
  2334.         default_layout="${XKBLAYOUT#*,}"
  2335.         default_variant="${XKBVARIANT#*,}"
  2336.         unsupported_layout=no
  2337.         ;;
  2338.     # TODO: make s.t. to not forget to update this list
  2339.     me,me|rs,rs|us,am|us,ara|us,ben|us,bd|us,bg|us,bt|us,by|us,deva|us,ge|us,gh|us,gr|us,guj|us,guru|us,il|us,in|us,ir|us,iku|us,kan|us,kh|us,kz|us,la|us,lao|us,lk|us,lt|us,mk|us,mm|us,mn|us,mv|us,mal|us,ori|us,pk|us,ru|us,scc|us,sy|us,syr|us,tel|us,th|us,tj|us,tam|us,ua|us,uz)
  2340.         if [ "${XKBVARIANT%,*}" = '' ]; then
  2341.         default_layout="${XKBLAYOUT#*,}"
  2342.         default_variant="${XKBVARIANT#*,}"
  2343.         unsupported_layout=no
  2344.         else
  2345.         unsupported_layout=yes
  2346.         fi
  2347.         ;;        
  2348.     *,*)
  2349.         unsupported_layout=yes
  2350.         ;;
  2351.     *)
  2352.         default_layout="$XKBLAYOUT"
  2353.         default_variant="$XKBVARIANT"
  2354.         ;;
  2355.     esac
  2356. fi
  2357.  
  2358. # since there are two completely different layouts 
  2359. if [ "$default_layout" = bg -a -z "$default_variant" ]; then
  2360.     default_variant=bds
  2361.     layout_priority=high
  2362. fi
  2363.  
  2364. if [ "$XKBOPTIONS" ]; then
  2365.     default_toggle='No toggling'
  2366.     default_switch='No temporary switch'
  2367.     default_altgr='No AltGr key'
  2368.     default_compose='No compose key'
  2369.     for option in `echo $XKBOPTIONS | sed 's/,/ /g'`; do
  2370.     case "$option" in
  2371.         compose:caps)
  2372.         default_compose='Caps Lock';;
  2373.         compose:lwin)
  2374.         default_compose='Left Logo key';;
  2375.         compose:menu)
  2376.         default_compose='Menu key';;
  2377.         compose:ralt)
  2378.         default_compose='Right Alt';;
  2379.         compose:rctrl)
  2380.         default_compose='Right Control';;
  2381.         compose:rwin)
  2382.         default_compose='Right Logo key';;
  2383.         grp:alt_caps_toggle)
  2384.         default_toggle='Alt+Caps Lock';;
  2385.         grp:alt_shift_toggle)
  2386.         default_toggle='Alt+Shift';;
  2387.         grp:caps_toggle)
  2388.         default_toggle='Caps Lock';;
  2389.         grp:ctrl_alt_toggle)
  2390.         default_toggle='Control+Alt';;
  2391.         grp:ctrl_shift_toggle)
  2392.         default_toggle='Control+Shift';;
  2393.         grp:lalt_toggle)
  2394.         default_toggle='Left Alt';;
  2395.         grp:lctrl_lshift_toggle)
  2396.         default_toggle='Left Control+Left Shift';;
  2397.         grp:lctrl_toggle)
  2398.         default_toggle='Left Control';;
  2399.         grp:lshift_toggle)
  2400.         default_toggle='Left Shift';;
  2401.         grp:lswitch)
  2402.         default_switch='Left Alt';;
  2403.         grp:lwin_switch)
  2404.         default_switch='Left Logo key';;
  2405.         grp:lwin_toggle)
  2406.         default_toggle='Left Logo key';;
  2407.         grp:menu_toggle)
  2408.         default_toggle='Menu key';;
  2409.         grp:rctrl_toggle)
  2410.         default_toggle='Right Control';;
  2411.         grp:rshift_toggle)
  2412.         default_toggle='Right Shift';;
  2413.         grp:rwin_switch)
  2414.         default_switch='Right Logo key';;
  2415.         grp:rwin_toggle)
  2416.         default_toggle='Right Logo key';;
  2417.         grp:sclk_toggle)
  2418.         default_toggle='Scroll Lock key';;
  2419.         grp:switch)
  2420.         default_switch='Right Alt';;
  2421.         grp:toggle)
  2422.         default_toggle='Right Alt';;
  2423.         grp:win_switch)
  2424.         default_switch='Both Logo keys';;
  2425.         lv3:alt_switch)
  2426.         default_altgr='Both Alt keys';;
  2427.         lv3:enter_switch)
  2428.         default_altgr='Keypad Enter key';;
  2429.         lv3:lalt_switch)
  2430.         default_altgr='Left Alt';;
  2431.         lv3:lwin_switch)
  2432.         default_altgr='Left Logo key';;
  2433.         lv3:menu_switch)
  2434.         default_altgr='Menu key';;
  2435.         lv3:ralt_switch)
  2436.         default_altgr='Right Alt';;
  2437.         lv3:rwin_switch)
  2438.         default_altgr='Right Logo key';;
  2439.         lv3:switch)
  2440.         default_altgr='Right Control';;
  2441.         lv3:win_switch)
  2442.         default_altgr='Both Logo keys';;
  2443.         grp_led:scroll)
  2444.         ;;
  2445.         *)
  2446.         unsupported_options=yes
  2447.         ;;
  2448.     esac
  2449.     done
  2450. fi
  2451.  
  2452. # Store some of the default values into debconf db.
  2453. db_default console-setup/ttys "$default_ttys"
  2454. db_default console-setup/charmap "$default_charmap"
  2455. db_default console-setup/codeset "$default_codeset"
  2456. db_default console-setup/fontface "$default_fontface"
  2457. db_default console-setup/fontsize-text "$default_fontsize"
  2458. db_default console-setup/fontsize-fb "$default_fontsize"
  2459. db_default console-setup/fontsize "$default_fontsize"
  2460. db_default console-setup/toggle "$default_toggle"
  2461. db_default console-setup/switch "$default_switch"
  2462. db_default console-setup/altgr "$default_altgr"
  2463. db_default console-setup/compose "$default_compose"
  2464.  
  2465. #######################################################################
  2466.  
  2467. STATE=1
  2468. old_state=0
  2469. while :; do
  2470.     starting_state=$STATE
  2471.     case "$STATE" in
  2472.     1)
  2473.         if \
  2474.         ask_debconf console-setup/model $model_priority \
  2475.             model $default_model
  2476.         then
  2477.         db_set console-setup/modelcode "$RET"
  2478.         STATE=$(($STATE + 1))
  2479.         else
  2480.         STATE=$(($STATE - 1))
  2481.         fi
  2482.         ;;
  2483.     2)
  2484.         db_get console-setup/modelcode
  2485.         if \
  2486.         $detect_keyboard \
  2487.         && [ "$RET" != SKIP ] \
  2488.         && [ -e "/usr/share/console-setup-mini/$RET.tree" ]
  2489.         then
  2490.         db_input high console-setup/ask_detect || true
  2491.         if db_go; then
  2492.             STATE=$(($STATE + 1))
  2493.         else
  2494.             STATE=$(($STATE - 1))
  2495.         fi
  2496.         else
  2497.         STATE=$(($STATE + $STATE - $old_state))
  2498.         fi
  2499.         ;;
  2500.     3)
  2501.         db_get console-setup/modelcode
  2502.         model="$RET"
  2503.         if \
  2504.         [ "$STATE" -ge "$old_state" ] \
  2505.         && $detect_keyboard \
  2506.         && [ "$model" != SKIP ] \
  2507.         && [ -e "/usr/share/console-setup-mini/$model.tree" ] \
  2508.         && db_get console-setup/ask_detect \
  2509.         && [ "$RET" = true ]
  2510.         then
  2511.         db_subst console-setup/detect FILENAME \
  2512.             "/usr/share/console-setup-mini/$model.tree"
  2513.         if db_input critical console-setup/detect && db_go; then
  2514.             db_get console-setup/detect
  2515.             detected_keyboard="$RET"
  2516.             # TODO: produce human-readable layout name
  2517.             db_subst console-setup/detected LAYOUT "$detected_keyboard"
  2518.             db_input high console-setup/detected || true
  2519.             if db_go; then
  2520.             unsupported_layout=no
  2521.             STATE=$(($STATE + 1))
  2522.             else
  2523.             detected_keyboard=
  2524.             STATE=$(($STATE - 1))
  2525.             fi
  2526.         else
  2527.             STATE=$(($STATE - 1))
  2528.         fi
  2529.         else
  2530.         detected_keyboard=
  2531.         STATE=$(($STATE + $STATE - $old_state))
  2532.         fi
  2533.         ;;
  2534.     4)
  2535.         if [ "$detected_keyboard" ] || [ "$model" = SKIP ]; then
  2536.         STATE=$(( $STATE + $STATE - $old_state ))
  2537.         elif [ "$unsupported_layout" = yes ]; then
  2538.         if [ -f /etc/default/console-setup ]; then
  2539.             db_reset console-setup/unsupported_config_layout || true
  2540.             db_fset console-setup/unsupported_config_layout seen false
  2541.             db_subst console-setup/unsupported_config_layout \
  2542.             XKBLAYOUT "$XKBLAYOUT"
  2543.             db_input medium console-setup/unsupported_config_layout \
  2544.             || true
  2545.             if db_go; then 
  2546.             STATE=$(($STATE + 1))
  2547.             else
  2548.             STATE=$(($STATE - 1))
  2549.             fi
  2550.             db_get console-setup/unsupported_config_layout
  2551.         else
  2552.             db_reset console-setup/unsupported_layout || true
  2553.             db_fset console-setup/unsupported_layout seen false
  2554.             db_subst console-setup/unsupported_layout \
  2555.             XKBLAYOUT "$XKBLAYOUT"
  2556.             db_input medium console-setup/unsupported_layout || true
  2557.             if db_go; then 
  2558.             STATE=$(($STATE + 1))
  2559.             else
  2560.             STATE=$(($STATE - 1))
  2561.             fi
  2562.             db_get console-setup/unsupported_layout
  2563.         fi
  2564.         if [ "$RET" != true ]; then
  2565.             unsupported_layout=no
  2566.         fi
  2567.         else
  2568.         # skip the question without making Debconf loop
  2569.         STATE=$(( $STATE + $STATE - $old_state ))
  2570.         fi
  2571.         ;;
  2572.     5)
  2573.         if [ "$detected_keyboard" ]; then
  2574.         layout="${detected_keyboard%%:*}"
  2575.         db_set console-setup/layoutcode "$layout"
  2576.         # skip the question without making Debconf loop
  2577.         STATE=$(( $STATE + $STATE - $old_state ))
  2578.         elif [ "$model" = SKIP ]; then
  2579.         STATE=$(( $STATE + $STATE - $old_state ))
  2580.         elif [ "$unsupported_layout" = yes ]; then
  2581.         db_set console-setup/layoutcode "$XKBLAYOUT"
  2582.         # skip the question without making Debconf loop
  2583.         STATE=$(( $STATE + $STATE - $old_state ))
  2584.         elif \
  2585.         ask_debconf console-setup/layout "$layout_priority" \
  2586.             layout "$default_layout"
  2587.         then
  2588.         layout="$RET"
  2589.         STATE=$(($STATE + 1))
  2590.         else
  2591.         STATE=$(($STATE - 1))
  2592.         fi
  2593.         ;;
  2594.     6)
  2595.         adjust_layout=false
  2596.         if [ "$detected_keyboard" ]; then
  2597.         case $detected_keyboard in
  2598.             *:*)
  2599.             variant="${detected_keyboard#*:}"
  2600.             ;;
  2601.             *)
  2602.             variant=
  2603.             ;;
  2604.         esac
  2605.         db_set console-setup/variantcode "$variant"
  2606.         adjust_layout=:
  2607.         # skip the question without making Debconf loop
  2608.         STATE=$(( $STATE + $STATE - $old_state ))
  2609.         elif [ "$model" = SKIP ]; then
  2610.         STATE=$(( $STATE + $STATE - $old_state ))
  2611.         elif [ "$unsupported_layout" = yes ]; then
  2612.         db_set console-setup/variantcode "$XKBVARIANT"
  2613.         # skip the question without making Debconf loop
  2614.         STATE=$(( $STATE + $STATE - $old_state ))
  2615.         elif \
  2616.         ask_debconf console-setup/variant "$layout_priority" \
  2617.                     "variant\*${layout}" "$default_variant"
  2618.         then
  2619.         variant="$RET"
  2620.         adjust_layout=:
  2621.         STATE=$(($STATE + 1))
  2622.         else
  2623.         STATE=$(($STATE - 1))
  2624.         fi
  2625.         if $adjust_layout; then
  2626.         case "$layout" in
  2627.             jp)
  2628.             case "$variant" in
  2629.                 106|common|OADG109A|nicola_f_bs|'')
  2630.                 latin=yes
  2631.                 real_layout=$layout
  2632.                 ;;
  2633.                 *)
  2634.                 latin=no
  2635.                 real_layout=jp,jp
  2636.                 ;;
  2637.             esac
  2638.             ;;
  2639.             lt)
  2640.             latin=no
  2641.             real_layout=lt,lt
  2642.             ;;
  2643.             me)
  2644.             case "$variant" in
  2645.                 basic|latin*)
  2646.                 latin=yes
  2647.                 real_layout=$layout
  2648.                 ;;
  2649.                 *)
  2650.                 latin=no
  2651.                 real_layout=me,me
  2652.                 ;;
  2653.             esac
  2654.             ;;
  2655.             rs)
  2656.             case "$variant" in
  2657.                 basic|latin*)
  2658.                 latin=yes
  2659.                 real_layout=$layout
  2660.                 ;;
  2661.                 *)
  2662.                 latin=no
  2663.                 real_layout=rs,rs
  2664.                 ;;
  2665.             esac
  2666.             ;;
  2667.             # TODO: make s.t. to not forget to update this list.  Don't
  2668.             # forget to update also the nonlatin list in kbdcompiler
  2669.             am|ara|ben|bd|bg|bt|by|deva|ge|gh|gr|guj|guru|il|in|ir|iku|kan|kh|kz|la|lao|lk|mk|mm|mn|mv|mal|ori|pk|ru|scc|sy|syr|tel|th|tj|tam|ua|uz)
  2670.             latin=no
  2671.             real_layout=us,$layout
  2672.             ;;
  2673.             *)
  2674.             latin=yes
  2675.             real_layout=$layout
  2676.             ;;
  2677.         esac
  2678.         db_set console-setup/layoutcode "$real_layout"
  2679.         if [ "$latin" = yes ]; then
  2680.             db_set console-setup/variantcode "$variant"
  2681.         elif [ "$real_layout" = lt,lt ]; then
  2682.             case "$variant" in
  2683.             us)
  2684.                 db_set console-setup/variantcode "us,"
  2685.                 ;;
  2686.             *)
  2687.                 db_set console-setup/variantcode "$variant,us"
  2688.                 ;;
  2689.             esac
  2690.         elif [ "$real_layout" = jp,jp ]; then
  2691.                 db_set console-setup/variantcode "106,$variant"
  2692.         elif [ "$real_layout" = me,me ]; then
  2693.             case "$variant" in
  2694.             cyrillicyz)
  2695.                 db_set console-setup/variantcode \
  2696.                 "latinyz,$variant"
  2697.                 ;;
  2698.             cyrillicalternatequotes)
  2699.                 db_set console-setup/variantcode \
  2700.                 "latinalternatequotes,$variant"
  2701.                 ;;
  2702.             *)
  2703.                 db_set console-setup/variantcode \
  2704.                 "basic,$variant"
  2705.                 ;;
  2706.             esac
  2707.         elif [ "$real_layout" = rs,rs ]; then
  2708.             case "$variant" in
  2709.             yz)
  2710.                 db_set console-setup/variantcode \
  2711.                 "latinyz,$variant"
  2712.                 ;;
  2713.             alternatequotes)
  2714.                 db_set console-setup/variantcode \
  2715.                 "latinalternatequotes,$variant"
  2716.                 ;;
  2717.             *)
  2718.                 db_set console-setup/variantcode \
  2719.                 "latin,$variant"
  2720.                 ;;
  2721.             esac
  2722.         else
  2723.             db_set console-setup/variantcode ",$variant"
  2724.         fi
  2725.         fi
  2726.         ;;
  2727.     7)
  2728.         if \
  2729.         [ "$unsupported_layout" = no \
  2730.         -a "$unsupported_options" = yes ]
  2731.         then
  2732.         if [ -f /etc/default/console-setup ]; then
  2733.             db_reset console-setup/unsupported_config_options || true
  2734.             db_fset console-setup/unsupported_config_options seen false
  2735.             db_subst console-setup/unsupported_config_options \
  2736.             XKBOPTIONS "$XKBOPTIONS"
  2737.             db_input medium console-setup/unsupported_config_options \
  2738.             || true
  2739.             if db_go; then 
  2740.             STATE=$(($STATE + 1))
  2741.             else
  2742.             STATE=$(($STATE - 1))
  2743.             fi
  2744.             db_get console-setup/unsupported_config_options
  2745.         else
  2746.             db_reset console-setup/unsupported_options || true
  2747.             db_fset console-setup/unsupported_options seen false
  2748.             db_subst console-setup/unsupported_options \
  2749.             XKBOPTIONS "$XKBOPTIONS"
  2750.             db_input medium console-setup/unsupported_options || true
  2751.             if db_go; then 
  2752.             STATE=$(($STATE + 1))
  2753.             else
  2754.             STATE=$(($STATE - 1))
  2755.             fi
  2756.             db_get console-setup/unsupported_options
  2757.         fi
  2758.         if [ "$RET" != true ]; then
  2759.             unsupported_options=no
  2760.         fi
  2761.         else
  2762.         # skip the question without making Debconf loop
  2763.         STATE=$(( $STATE + $STATE - $old_state ))
  2764.         fi
  2765.         ;;
  2766.     8)
  2767.         if \
  2768.         [ "$unsupported_layout" = yes \
  2769.         -o "$unsupported_options" = yes ]
  2770.         then
  2771.         db_set console-setup/optionscode "$XKBOPTIONS"
  2772.         # skip the questions without making Debconf loop
  2773.         STATE=$(( $STATE + $STATE - $old_state ))
  2774.         elif [ "$model" = SKIP ]; then
  2775.         STATE=$(( $STATE + $STATE - $old_state ))
  2776.         else
  2777.         if [ "$latin" = yes ]; then
  2778.             db_default console-setup/toggle 'No toggling'
  2779.             db_default console-setup/switch 'No temporary switch'
  2780.         fi
  2781.         db_beginblock
  2782.         if [ "$latin" = no ]; then
  2783.             db_get console-setup/toggle
  2784.             if [ "$RET" = 'No toggling' ]; then
  2785.             db_reset console-setup/toggle
  2786.             fi
  2787.             db_input high console-setup/toggle || true
  2788.             db_input medium console-setup/switch || true
  2789.         fi
  2790.         if [ ! -f $CONFIGFILE -a "$layout" = us ]; then
  2791.             if [ "$variant" = '' ]; then
  2792.             # basic US keyboard doesn't use AltGr.
  2793.             db_default console-setup/altgr 'No AltGr key'
  2794.             else
  2795.             db_default console-setup/altgr 'Right Alt'
  2796.             fi
  2797.         fi
  2798.         db_input medium console-setup/altgr || true
  2799.         db_input medium console-setup/compose || true
  2800.         db_endblock
  2801.  
  2802.         if db_go; then 
  2803.             STATE=$(($STATE + 1))
  2804.         else
  2805.             STATE=$(($STATE - 1))
  2806.         fi
  2807.  
  2808.         db_get console-setup/toggle
  2809.         case "$RET" in
  2810.             Caps\ Lock)
  2811.                 caps_allocated=yes
  2812.                 toggle=caps_toggle;;
  2813.             Right\ Alt)
  2814.                 ralt_allocated=yes
  2815.                 toggle=toggle;;
  2816.             Right\ Control)
  2817.                 rctrl_allocated=yes
  2818.                 toggle=rctrl_toggle;;
  2819.             Right\ Shift)
  2820.                 rshift_allocated=yes
  2821.                 toggle=rshift_toggle;;
  2822.             Right\ Logo?key)
  2823.                 rwin_allocated=yes
  2824.                 toggle=rwin_toggle;;
  2825.             Menu?key)
  2826.             menu_allocated=yes
  2827.             toggle=menu_toggle;;
  2828.             Alt+Shift)
  2829.             toggle=alt_shift_toggle;;
  2830.             Control+Shift)
  2831.             toggle=ctrl_shift_toggle;;
  2832.             Left\ Control+Left\ Shift)
  2833.             toggle=lctrl_lshift_toggle;;
  2834.             Scroll\ Lock\ key)
  2835.             toggle=sclk_toggle;;
  2836.             Alt+Caps\ Lock)
  2837.             toggle=alt_caps_toggle;;
  2838.             Control+Alt)
  2839.             toggle=ctrl_alt_toggle;;
  2840.             Left\ Alt)
  2841.                 lalt_allocated=yes
  2842.                 toggle=lalt_toggle;;
  2843.             Left\ Control)
  2844.                 lctrl_allocated=yes
  2845.                 toggle=lctrl_toggle;;
  2846.             Left\ Shift)
  2847.                 lshift_allocated=yes
  2848.                 toggle=lshift_toggle;;
  2849.             Left\ Logo?key)
  2850.                 lwin_allocated=yes
  2851.                 toggle=lwin_toggle;;
  2852.             No\ toggling)
  2853.                 toggle='';;
  2854.             *)
  2855.             echo Unknown toggle key option
  2856.             exit 1
  2857.             ;;
  2858.         esac
  2859.         if [ "$toggle" ]; then
  2860.             toggle=grp:$toggle
  2861.         fi
  2862.         
  2863.         db_get console-setup/switch
  2864.         switch=''
  2865.         case "$RET" in
  2866.             Right\ Alt)
  2867.                 if [ "$ralt_allocated" != yes ]; then
  2868.                 switch=switch
  2869.                 ralt_allocated=yes
  2870.                 fi;;
  2871.             Left\ Alt)
  2872.                 if [ "$lalt_allocated" != yes ]; then
  2873.                 switch=lswitch
  2874.                 lalt_allocated=yes
  2875.                 fi;;
  2876.             Right\ Logo?key)
  2877.                 if [ "$rwin_allocated" != yes ]; then
  2878.                 switch=rwin_switch
  2879.                 rwin_allocated=yes
  2880.                 fi;;
  2881.             Left\ Logo?key)
  2882.                 if [ "$lwin_allocated" != yes ]; then
  2883.                 switch=lwin_switch
  2884.                 lwin_allocated=yes
  2885.                 fi;;
  2886.             Both\ Logo?keys)
  2887.                 if \
  2888.                 [ "$rwin_allocated" != yes ] \
  2889.                 && [ "$lwin_allocated" != yes ]
  2890.             then
  2891.                 switch=win_switch
  2892.                 rwin_allocated=yes
  2893.                 lwin_allocated=yes
  2894.                 fi;;
  2895.             No\ temporary\ switch)
  2896.                 switch='';;
  2897.             *)
  2898.             echo Unknown switch key option
  2899.             exit 1
  2900.             ;;
  2901.         esac
  2902.         if [ "$switch" ]; then
  2903.             switch=grp:$switch
  2904.         fi
  2905.         
  2906.         db_get console-setup/altgr
  2907.         altgr=''
  2908.         case "$RET" in
  2909.             No?AltGr?key)
  2910.             altgr='';;
  2911.             Right?Alt)
  2912.             if [ "$ralt_allocated" != yes ]; then
  2913.                 altgr=ralt_switch
  2914.                 ralt_allocated=yes
  2915.             fi;;
  2916.             Right?Control)
  2917.             if [ "$rctrl_allocated" != yes ]; then
  2918.                 altgr=switch
  2919.                 rctrl_allocated=yes
  2920.             fi;;
  2921.             Menu?key)
  2922.             if [ "$menu_allocated" != yes ]; then
  2923.                 altgr=menu_switch
  2924.                 menu_allocated=yes
  2925.             fi;;
  2926.             Keypad?Enter?key)
  2927.             altgr=enter_switch;;
  2928.             Right?Logo?key)
  2929.             if [ "$rwin_allocated" != yes ]; then
  2930.                 altgr=rwin_switch
  2931.                 rwin_allocated=yes
  2932.             fi;;
  2933.             Left?Logo?key)
  2934.             if [ "$lwin_allocated" != yes ]; then
  2935.                 altgr=lwin_switch
  2936.                 lwin_allocated=yes
  2937.             fi;;
  2938.             Both?Logo?keys)
  2939.             if \
  2940.                 [ "$rwin_allocated" != yes ] \
  2941.                 && [ "$lwin_allocated" != yes ]
  2942.             then
  2943.                 altgr=win_switch
  2944.                 rwin_allocated=yes
  2945.                 lwin_allocated=yes
  2946.             fi;;
  2947.             Both?Alt?keys)
  2948.             if \
  2949.                 [ "$lalt_allocated" != yes ] \
  2950.                 && [ "$ralt_allocated" != yes ]
  2951.             then
  2952.                 altgr=alt_switch
  2953.                 ralt_allocated=yes
  2954.                 lalt_allocated=yes
  2955.             fi;;
  2956.             Left?Alt)
  2957.             if [ "$lalt_allocated" != yes ]; then
  2958.                 altgr=lalt_switch
  2959.                 lalt_allocated=yes
  2960.             fi;;
  2961.             *)
  2962.             echo Unknown altgr key option
  2963.             exit 1
  2964.             ;;
  2965.         esac
  2966.         if [ "$altgr" ]; then
  2967.             altgr=lv3:$altgr
  2968.         fi
  2969.  
  2970.         db_get console-setup/compose
  2971.         compose=''
  2972.         case "$RET" in
  2973.             No?compose?key)
  2974.             compose='';;
  2975.             Right?Alt)
  2976.             if [ "$ralt_allocated" != yes ]; then
  2977.                 compose=ralt
  2978.                 ralt_allocated=yes
  2979.             fi;;
  2980.             Right?Logo?key)
  2981.             if [ "$rwin_allocated" != yes ]; then
  2982.                 compose=rwin
  2983.                 rwin_allocated=yes
  2984.             fi;;
  2985.             Left?Logo?key)
  2986.             if [ "$lwin_allocated" != yes ]; then
  2987.                 compose=lwin 
  2988.                 lwin_allocated=yes
  2989.             fi;;
  2990.             Right?Control)
  2991.             if [ "$rctrl_allocated" != yes ]; then
  2992.                 compose=rctrl 
  2993.                 rctrl_allocated=yes
  2994.             fi;;
  2995.             Menu?key)
  2996.             if [ "$menu_allocated" != yes ]; then
  2997.                 compose=menu
  2998.                 menu_allocated=yes
  2999.             fi;;
  3000.             Caps?Lock)
  3001.             if [ "$caps_allocated" != yes ]; then
  3002.                 compose=caps
  3003.                 caps_allocated=yes
  3004.             fi;;
  3005.             *)
  3006.             echo Unknown compose key option
  3007.             exit 1
  3008.             ;;
  3009.         esac
  3010.         if [ "$compose" ]; then
  3011.             compose=compose:$compose
  3012.         fi
  3013.         
  3014.         case "$real_layout" in
  3015.             *,*)
  3016.                 leds=grp_led:scroll;;
  3017.             *)
  3018.             leds='';;
  3019.         esac
  3020.         
  3021.         options=$(
  3022.             echo $toggle $switch $altgr $compose $leds \
  3023.             | sed -e 's/^ *//' -e 's/ *$//' -e 's/  */,/g'
  3024.         )
  3025.         db_set console-setup/optionscode "$options"
  3026.         fi
  3027.         ;;            
  3028.     9)
  3029.         if [ "$package" = console-setup-mini ]; then
  3030.         if [ "$STATE" -ge "$old_state" ]; then
  3031.             STATE=$(($STATE + 1))
  3032.         else
  3033.             STATE=$(($STATE - 1))
  3034.         fi
  3035.         charmap=UTF-8
  3036.         else
  3037.         # add commas
  3038.         choices=`echo "$charmaps" | sed -e 's/$/,/g' | LC_ALL=C sort `
  3039.         # remove newlines
  3040.         choices=`echo $choices | sed -e 's/,$//' `
  3041.         db_subst console-setup/charmap CHOICES "$choices"
  3042.         db_default console-setup/charmap "$default_charmap"
  3043.         db_input $charmap_priority console-setup/charmap || true
  3044.         if db_go; then
  3045.             STATE=$(($STATE + 1))
  3046.         else
  3047.             STATE=$(($STATE - 1))
  3048.         fi
  3049.         db_get console-setup/charmap
  3050.         charmap=$RET
  3051.         fi
  3052.         ;;
  3053.     10)
  3054.         # It shouldn't be possible for $default_codeset to be
  3055.         # empty, but just a precaution.
  3056.         if [ "$default_codeset" ]; then
  3057.         db_default console-setup/codeset "$default_codeset"
  3058.         fi
  3059.         db_input $codeset_priority console-setup/codeset || true
  3060.         if db_go; then
  3061.         db_get console-setup/codeset
  3062.         codeset="`encode_codeset $RET`"
  3063.         db_set console-setup/codesetcode "$codeset"
  3064.         STATE=$(($STATE + 1))
  3065.         else
  3066.         STATE=$(($STATE - 1))
  3067.         fi
  3068.         ;;
  3069.     11)
  3070.         fontfaces=`available_fontfaces`
  3071.         # add commas
  3072.         choices=`echo "$fontfaces" | sed -e 's/$/,/g'`
  3073.         # remove newlines
  3074.         choices=`echo $choices | sed -e 's/,$//'`
  3075.         db_subst console-setup/fontface CHOICES "$choices"
  3076.         if [ -z "$default_fontface" ]; then
  3077.         case "$codeset" in
  3078.             Arabic)
  3079.             default_fontface=VGA
  3080.             ;;
  3081.             Armenian)
  3082.             default_fontface=Fixed
  3083.             ;;
  3084.             CyrAsia)
  3085.             default_fontface=Fixed
  3086.             ;;
  3087.             CyrKoi)
  3088.             default_fontface=VGA
  3089.             ;;
  3090.             CyrSlav)
  3091.             default_fontface=Fixed
  3092.             ;;
  3093.             Ethiopian)
  3094.             default_fontface=Goha
  3095.             ;;
  3096.             Georgian)
  3097.             default_fontface=Fixed
  3098.             ;;
  3099.             Greek)
  3100.             default_fontface=Fixed
  3101.             ;;
  3102.             Hebrew)
  3103.             default_fontface=Fixed
  3104.             ;;
  3105.             Lao)
  3106.             default_fontface=Fixed
  3107.             ;;
  3108.             Lat15)
  3109.             default_fontface=VGA
  3110.             ;;
  3111.             Lat2)
  3112.             default_fontface=Fixed
  3113.             ;;
  3114.             Lat38)
  3115.             default_fontface=Fixed
  3116.             ;;
  3117.             Lat7)
  3118.             default_fontface=Fixed
  3119.             ;;
  3120.             Thai)
  3121.             default_fontface=Fixed
  3122.             ;;
  3123.             Uni1)
  3124.             default_fontface=VGA
  3125.             ;;
  3126.             Uni2)
  3127.             default_fontface=Fixed
  3128.             ;;
  3129.             Uni3)
  3130.             default_fontface=Fixed
  3131.             ;;
  3132.             Vietnamese)
  3133.             default_fontface=Fixed
  3134.             ;;
  3135.             *)
  3136.             default_fontface=Fixed
  3137.             ;;
  3138.         esac
  3139.         fi
  3140.         db_default console-setup/fontface "$default_fontface"
  3141.         db_input medium console-setup/fontface || true
  3142.         if db_go; then
  3143.         STATE=$(($STATE + 1))
  3144.         else
  3145.         STATE=$(($STATE - 1))
  3146.         fi
  3147.         db_get console-setup/fontface
  3148.         fontface=$RET
  3149.         ;;
  3150.     12)
  3151.         fontsizes=`available_fontsizes`
  3152.         # add commas
  3153.         choices=`echo "$fontsizes" | sed -e 's/$/,/g' `
  3154.         # remove newlines
  3155.         choices=`echo $choices | sed -e 's/,$//'`
  3156.         if echo "$choices" | grep -q x; then
  3157.         size_template=console-setup/fontsize-fb
  3158.         else
  3159.         size_template=console-setup/fontsize-text
  3160.         fi
  3161.         db_subst $size_template CHOICES "$choices"
  3162.         db_input medium $size_template || true
  3163.         if db_go; then
  3164.         STATE=$(($STATE + 1))
  3165.         else
  3166.         STATE=$(($STATE - 1))
  3167.         fi
  3168.         db_get $size_template
  3169.         fontsize=$RET
  3170.         db_set console-setup/fontsize "$fontsize"
  3171.         ;;
  3172.     13)
  3173.         db_input medium console-setup/ttys || true
  3174.         if db_go; then
  3175.         STATE=$(($STATE + 1))
  3176.         else
  3177.         STATE=$(($STATE - 1))
  3178.         fi
  3179.         db_get console-setup/ttys
  3180.         ttys=$RET
  3181.         ;;
  3182.     *)
  3183.         break
  3184.         ;;
  3185.     esac
  3186.     old_state=$starting_state
  3187. done
  3188.  
  3189. if [ $STATE -eq 0 ]; then
  3190.     exit 10
  3191. else
  3192.     # we don't do the following corrections during the state 2 or 3 of
  3193.     # the loop because if the user backs up and selects another layout
  3194.     # the keyboard model will be wrong.  We also want the combinations
  3195.     # Brasilian layout on Japanese keyboard and Japanese layout on
  3196.     # Brasilian keyboard to be possible.
  3197.     db_get console-setup/modelcode
  3198.     if [ "$RET" = "$default_model" ]; then
  3199.     if [ "$layout" = br ]; then 
  3200.         db_set console-setup/modelcode abnt2
  3201.     elif [ "$layout" = jp ]; then 
  3202.         db_set console-setup/modelcode jp106
  3203.     fi
  3204.     fi
  3205. fi
  3206.